ereg ou preg_match sur terme " [ " marche pas - detection de variable
5 réponses
newpain
bonjour,
je galère avec mes différentes variables :
j'ai une chaîne qui commence par [a et ce termine par ]
mais lorsque je fais une détection du style
if (ereg('[a','[a15]')){
echo 'fonctionne';
} else { echo 'fonctionne pas'; }
et ça marche pas, j'ai tenté la fonction eregi - même constat et tenté
preg_match pareil sans résultats.
Sachant que j'ai pas le droit de supprimé ni remplacer les crochets, et
que le probleme vient du [ j'ai pas de solutions.
La fonction preg_match me semble ere plus adéquat mais je piges pas les
termes de recherche /?^
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
Le 07/06/2009 11:48, newpain a écrit :
j'ai une chaîne qui commence par [a et ce termine par ] mais lorsque je fais une détection du style if (ereg('[a','[a15]')){ echo 'fonctionne'; } else { echo 'fonctionne pas'; }
et ça marche pas,
RTFM ?
-- ereg('[a','[a15]') -- ereg('[[]a','[a15]')
La fonction preg_match me semble ere plus adéquat mais je piges pas les termes de recherche /?^
j'ai une chaîne qui commence par [a et ce termine par ]
mais lorsque je fais une détection du style
if (ereg('[a','[a15]')){
echo 'fonctionne';
} else { echo 'fonctionne pas'; }
et ça marche pas,
RTFM ?
-- ereg('[a','[a15]')
-- ereg('[[]a','[a15]')
La fonction preg_match me semble ere plus adéquat mais je piges pas les
termes de recherche /?^
j'ai une chaîne qui commence par [a et ce termine par ] mais lorsque je fais une détection du style if (ereg('[a','[a15]')){ echo 'fonctionne'; } else { echo 'fonctionne pas'; }
et ça marche pas,
RTFM ?
-- ereg('[a','[a15]') -- ereg('[[]a','[a15]')
La fonction preg_match me semble ere plus adéquat mais je piges pas les termes de recherche /?^
Le 07/06/2009 11:54, je répondais au nouveau pain :
ou bien sûr :
-- (strstr('[a15]', '[a') !== FALSE)
Je voulais dire : -- (strpos('[a15]', '[a') !== FALSE)
(strstr marche aussi, mais il consomme plus de temps et de ressources)
-- Olivier Miakinen
newpain
Olivier Miakinen a écrit :
Le 07/06/2009 11:54, je répondais au nouveau pain :
ou bien sûr :
-- (strstr('[a15]', '[a') !== FALSE)
Je voulais dire : -- (strpos('[a15]', '[a') !== FALSE)
(strstr marche aussi, mais il consomme plus de temps et de ressources)
Excellent merci beaucoup, tant que j'y suis , tu connaîtrais un site qui fait une explication sur les '/[a/' - en fait le pourquoi du comment des slashs, crochets ?
Olivier Miakinen a écrit :
Le 07/06/2009 11:54, je répondais au nouveau pain :
ou bien sûr :
-- (strstr('[a15]', '[a') !== FALSE)
Je voulais dire :
-- (strpos('[a15]', '[a') !== FALSE)
(strstr marche aussi, mais il consomme plus de temps et de ressources)
Excellent merci beaucoup, tant que j'y suis , tu connaîtrais un site qui
fait une explication sur les '/[a/' - en fait le pourquoi du comment
des slashs, crochets ?
Le 07/06/2009 11:54, je répondais au nouveau pain :
ou bien sûr :
-- (strstr('[a15]', '[a') !== FALSE)
Je voulais dire : -- (strpos('[a15]', '[a') !== FALSE)
(strstr marche aussi, mais il consomme plus de temps et de ressources)
Excellent merci beaucoup, tant que j'y suis , tu connaîtrais un site qui fait une explication sur les '/[a/' - en fait le pourquoi du comment des slashs, crochets ?
Mickael Wolff
Olivier Miakinen a écrit :
-- ereg('[a','[a15]') -- ereg('[[]a','[a15]')
Je rajouterais que ereg est déconseillé, en raison de problème de performance et de sa suppression dans l'avenir.
[...] tant que j'y suis , tu connaîtrais un site qui fait une explication sur les '/[a/' - en fait le pourquoi du comment des slashs, crochets ?
Oui, bien sûr. Un bon point de départ est tout simplement le site officiel de PHP, <http://www.php.net/>, ce pourquoi j'écrivais « RTFM » dans ma première réponse.
Tout d'abord, concernant ereg et les expressions rationnelles POSIX, il est conseillé à presque chaque page du manuel de leur préférer les expressions rationnelles PCRE (ainsi que l'a rappelé Mickaël Wolff) : <http://www.php.net/manual/fr/function.ereg.php> <http://www.php.net/manual/fr/intro.regex.php>.
Concernant les regex PCRE, maintenant, la page d'introduction explique qu'il faut un délimiteur au début et à la fin, que ce délimiteur peut être un slash (/) mais que ce n'est pas obligé : <http://www.php.net/manual/fr/intro.pcre.php>.
Quant à la syntaxe des masques, par exemple en quoi le caractère crochet ([) est un métacaractère et comment on peut le protéger, c'est expliqué ici : <http://www.php.net/manual/fr/regexp.reference.php>.
Voir aussi les options de recherche : <http://www.php.net/manual/fr/reference.pcre.pattern.modifiers.php> et puis la doc complète (en anglais) de PCRE : <http://www.pcre.org/pcre.txt>.
Cordialement, -- Olivier Miakinen
Le 07/06/2009 23:51, newpain a écrit :
[...] tant que j'y suis , tu connaîtrais un site qui
fait une explication sur les '/[a/' - en fait le pourquoi du comment
des slashs, crochets ?
Oui, bien sûr. Un bon point de départ est tout simplement le site
officiel de PHP, <http://www.php.net/>, ce pourquoi j'écrivais « RTFM »
dans ma première réponse.
Tout d'abord, concernant ereg et les expressions rationnelles POSIX, il
est conseillé à presque chaque page du manuel de leur préférer les
expressions rationnelles PCRE (ainsi que l'a rappelé Mickaël Wolff) :
<http://www.php.net/manual/fr/function.ereg.php>
<http://www.php.net/manual/fr/intro.regex.php>.
Concernant les regex PCRE, maintenant, la page d'introduction explique
qu'il faut un délimiteur au début et à la fin, que ce délimiteur peut
être un slash (/) mais que ce n'est pas obligé :
<http://www.php.net/manual/fr/intro.pcre.php>.
Quant à la syntaxe des masques, par exemple en quoi le caractère crochet
([) est un métacaractère et comment on peut le protéger, c'est expliqué
ici : <http://www.php.net/manual/fr/regexp.reference.php>.
Voir aussi les options de recherche :
<http://www.php.net/manual/fr/reference.pcre.pattern.modifiers.php>
et puis la doc complète (en anglais) de PCRE :
<http://www.pcre.org/pcre.txt>.
[...] tant que j'y suis , tu connaîtrais un site qui fait une explication sur les '/[a/' - en fait le pourquoi du comment des slashs, crochets ?
Oui, bien sûr. Un bon point de départ est tout simplement le site officiel de PHP, <http://www.php.net/>, ce pourquoi j'écrivais « RTFM » dans ma première réponse.
Tout d'abord, concernant ereg et les expressions rationnelles POSIX, il est conseillé à presque chaque page du manuel de leur préférer les expressions rationnelles PCRE (ainsi que l'a rappelé Mickaël Wolff) : <http://www.php.net/manual/fr/function.ereg.php> <http://www.php.net/manual/fr/intro.regex.php>.
Concernant les regex PCRE, maintenant, la page d'introduction explique qu'il faut un délimiteur au début et à la fin, que ce délimiteur peut être un slash (/) mais que ce n'est pas obligé : <http://www.php.net/manual/fr/intro.pcre.php>.
Quant à la syntaxe des masques, par exemple en quoi le caractère crochet ([) est un métacaractère et comment on peut le protéger, c'est expliqué ici : <http://www.php.net/manual/fr/regexp.reference.php>.
Voir aussi les options de recherche : <http://www.php.net/manual/fr/reference.pcre.pattern.modifiers.php> et puis la doc complète (en anglais) de PCRE : <http://www.pcre.org/pcre.txt>.