par
Ryle » 30 mai 2007, 13:56
Bon alors un rapide petit cours d'échappement :
Dans une chaine délimitée par des apostrohpes, on peut utiliser des guillemets sans avoir besoin de les échapper. De même si la chaine est délimitée par des guillemets on peut utiliser des apostrophes sans soucis.
echo '<img src="...." alt="...." />';
echo "<img src='....' alt='....' />";
Le problème apparait donc uniquement lorsque des guillemets contiennent d'autres guillemets, ou que des apostrophes encadrent d'autres apostrophes. En effet, dans ce cas, le langage va considérer que la chaine se termine à ce caractère.
Selon le langage dans lequel on travail, la façon d'échapper un caractère dans une chaine peut varier (doubler l'apostrophe en sql, passer en entités html pour du html, etc.). En PHP on échappe un caractère en le faisant précéder d'un antislash :
echo "<img src=\"....\" alt=\"....\" />";
Ainsi, tu peux virer tous les antislash inutiles de ton expression
$chaine = str_replace(
'<img border="0"',
'<img class="image" alt="Voir détail de l\'annonce" width="41" height="60"',
$chaine
);