Bonjour,
J'utilise la fonction preg_match($pattern, $string, $match).
Quelqu'un aurait-il déjà entendu/vu/lu que la taille de la string serait limitée, avec pour conséquence de renvoyer $match = array() ?
Dans mon cas, $string est une requête sql générée en PHP, $pattern est une expression régulière qui teste la requête et qui y retrouve les mots-clés (SELECT, FROM, WHERE, etc...), que voilà :
qui est testée et éprouvée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $pattern = '/^select(.*?)from(.*?)(?:where(.*?))?(?:group by(.*?))?(?:having(.*?))?(?:order by(.*?))?(?:limit(.*?))?$/is';
Ma requête ne passe donc pas le test du preg_match, alors que, testée directement sous mysql, elle fonctionne.
Quand j'essaye de réduire sa taille (elle ne correspond plus a mon besoin mais c'est pour tester), ça fonctionne jusque 10326 caractères (comptés dans word hein !! :-D). Dès que je rajoute la suite, preg_match ne fait plus rien !
Alors peut-être ma requête est mal formée et peut être optimisée, ça peut faire l'objet d'une autre question pour ceux que ça intéresse :-D mais quelqu'un a t'il déjà entendu parler de ce phanomène ?
J'ai cherché dans le fichier de config PHP, mais aucune variable ne m'a paru assez parlante pour mon cas.
Merci d'avance
Nico
Partager