Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ereg ou preg_match sur terme " [ " marche pas - detection de variable

5 réponses
Avatar
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 /?^

avez vous des idées ?

5 réponses

Avatar
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 /?^



-- preg_match('/[a/','[a15]')
-- preg_match('/[[]a/','[a15]')

ou bien sûr :

-- (strstr('[a15]', '[a') !== FALSE)

--
Olivier Miakinen
Avatar
Olivier Miakinen
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
Avatar
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 ?
Avatar
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.

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Avatar
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>.

Cordialement,
--
Olivier Miakinen