Bonjour à tous,
j'ai un soucis avec la fonction preg_replace de PHP. J'essaye de remplacer les balises: """, "<", ">" qui apparaissent après avoir fait un nl2br(htmlspecialchars()) sur la chaine $source.

Et quand je fais ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
$source = preg_replace ('#"#', '"', $source);
les """ sont bien remplacé par des guillemets, mais quand j'essaye:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
$source = preg_replace ('#&amp;lt;#', '<', $source);
ça ne marche pas, les "&lt;" ne sont pas remplacés par des "<", ils se contentent de disparaître... avec le reste de la phrase. Le comportement est le même avec "&gt;".

Pourtant si on remplace cette dernière ligne par:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
$source = preg_replace ('#&amp;lt;#', 'A', $source);
il semble que le "&lt;" soit remplacés par des "A". J'ai donc l'impression que ce sont les symboles "<" et ">" qui posent problème dans la fonction.

Mais même en les échappant cela ne fonctionne pas.

Avez-vous un idée du problème ?

Merci.

Cordialement,
Pop360