Discussion:
ereg ou preg_match sur terme " [ " marche pas - detection de variable
(trop ancien pour répondre)
newpain
2009-06-07 09:48:38 UTC
Permalink
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 /?^

avez vous des idées ?
Olivier Miakinen
2009-06-07 09:54:42 UTC
Permalink
Post by newpain
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]')
Post by newpain
La fonction preg_match me semble ere plus adéquat mais je piges pas les
termes de recherche /?^
-- preg_match('/\[a/','[a15]')
-- preg_match('/[[]a/','[a15]')

ou bien sûr :

-- (strstr('[a15]', '[a') !== FALSE)
--
Olivier Miakinen
Olivier Miakinen
2009-06-07 10:21:26 UTC
Permalink
Post by Olivier Miakinen
-- (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
2009-06-07 21:51:06 UTC
Permalink
Post by Olivier Miakinen
Post by Olivier Miakinen
-- (strstr('[a15]', '[a') !== FALSE)
-- (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
2009-06-07 22:55:14 UTC
Permalink
[...] 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
Mickael Wolff
2009-06-07 21:51:06 UTC
Permalink
Post by Olivier Miakinen
-- 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.
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Continuer la lecture sur narkive:
Loading...