problème avec preg_match_all
Bonjour à tous,
J'ai un vrai souci avec les expressions régulières...
je veux isoler tout ce qui est comme ça dans une chaine :"{(.*)}"
voilà mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
$chaine="
<TABLE>
<tr>
<td colspan='3'>
<IMG title='image1' src='{constant:IMG_1}'>
<IMG title='image2' src='{constant:IMG_2}'>
<IMG title='image3' src='{constant:IMG_3}'>
<IMG title='image4' src='{constant:IMG_4}'>
</td></tr>
<TR>
<TD>
<A onMouseOver=\"document.images['a'].src='{constant:IMG_5}';\" onMouseOut=\"document.images['a'].src='{constant:IMG_6}';\"><IMG src='{constant:IMG_6}'></A></TD>
</TD>
<TD>
<A onMouseOver=\"document.images['b'].src='{constant:IMG_7}';\" onMouseOut=\"document.images['b'].src='{constant:IMG_8}';\"><IMG src='{constant:IMG_7}'></A></TD>
</TR>
</TABLE>
";
preg_match_all("#{constant:(.*)}#",$chaine,$tableau_ereg);
print_r($tableau_ereg[0]); |
et ce que j'obtiens :
Code:
1 2 3 4 5 6 7 8 9 10
|
Array
(
[0] => {constant:IMG_1}
[1] => {constant:IMG_2}
[2] => {constant:IMG_3}
[3] => {constant:IMG_4}
[4] => {constant:IMG_5}';" onMouseOut="document.images['a'].src='{constant:IMG_6}';"><IMG src='{constant:IMG_6}
[5] => {constant:IMG_7}';" onMouseOut="document.images['b'].src='{constant:IMG_8}';"><IMG src='{constant:IMG_7}
) |
Vous avez sans doute compris, je voudrais obtenir ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
Array
(
[0] => {constant:IMG_1}
[1] => {constant:IMG_2}
[2] => {constant:IMG_3}
[3] => {constant:IMG_4}
[4] => {constant:IMG_5}
[5] => {constant:IMG_6}
[6] => {constant:IMG_6}
[7] => {constant:IMG_7}
[8] => {constant:IMG_8}
[9] => {constant:IMG_7}
) |
Il y a un souci dans mon expression régulière, il ne s'arrête pas au 1er "}" trouvé, mais apparemment au dernier de la ligne...
Et je ne vois pas du tout comment modifier mon expression... Vous avez une idée ?
Merci.