par
spirou » 14 avr. 2006, 17:24
Salut,
Je me suis plongé dans les expressions régulières, et je suis presque arrivé à faire ce que je voulais, mais le tableau que j'obtiens est à 2 dimensions, ce qui fait que lorsque je teste si une chaine est dans mon tableau, cela me retourne faux(absent).
Comment faire pour obtenir un tableau "normal" ?
Ce que j'ai fait :
<?php
$recherche = "`[^enum,'][a-z0-9_]+`i";
$get = 'cat1';
preg_match_all($recherche, "enum('cat1','cat2','cat3','cat4','cat5')", $autorise);
echo '<br />';
print_r($autorise);
print '<br />' . $autorise[0][0];
echo '<br />';
if( in_array($get, $autorise) )
{
echo '<br />Présent<br />';
}
else
{
echo '<br />Absent<br />';
}
?>
Le print_r de $autorise me donne :
Code : Tout sélectionner
Array ( [0] => Array ( [0] => cat1 [1] => cat2 [2] => cat3 [3] => cat4 [4] => cat5 ) )
J'aurais aussi une question subsidiaire, quel est la différence entre
PREG_PATTERN_ORDER et
PREG_SET_ORDER, j'ai bien lu la doc, mais j'avoue avoir du mal à comprendre
Merci.
Salut,
Je me suis plongé dans les expressions régulières, et je suis presque arrivé à faire ce que je voulais, mais le tableau que j'obtiens est à 2 dimensions, ce qui fait que lorsque je teste si une chaine est dans mon tableau, cela me retourne faux(absent).
Comment faire pour obtenir un tableau "normal" ?
Ce que j'ai fait :
[php]
<?php
$recherche = "`[^enum,'][a-z0-9_]+`i";
$get = 'cat1';
preg_match_all($recherche, "enum('cat1','cat2','cat3','cat4','cat5')", $autorise);
echo '<br />';
print_r($autorise);
print '<br />' . $autorise[0][0];
echo '<br />';
if( in_array($get, $autorise) )
{
echo '<br />Présent<br />';
}
else
{
echo '<br />Absent<br />';
}
?>[/php]
Le print_r de $autorise me donne :
[code]Array ( [0] => Array ( [0] => cat1 [1] => cat2 [2] => cat3 [3] => cat4 [4] => cat5 ) ) [/code]
J'aurais aussi une question subsidiaire, quel est la différence entre [color=darkblue]PREG_PATTERN_ORDER[/color] et [color=darkblue]PREG_SET_ORDER[/color], j'ai bien lu la doc, mais j'avoue avoir du mal à comprendre :?
Merci.