[PHP] Remplacement + fonction

Résolu/Fermé
Utilisateur anonyme - 30 sept. 2009 à 21:06
 lewis34 - 2 oct. 2009 à 20:16
Bonjour,
je cherche depuis quelques temps à exécuter une fonction lors d'un remplacement par preg_replace(), je souhaiterais pouvoir exécuter un htmlentities() sur le texte :

prenons pour exemple ceci :
Blablabla ... exemple :
<?php
$var = 'inutile';
Texte totalement <?php echo $var; ?>.
?>
blablabla...

J'ai un texte dans lequel il y a du code php, et je ne veux pas que ce code soit interprété, et je veux donc le convertir en entité html, seulement, ce bout de texte sera rentré avec d'autre texte, qui lui sera interprété :

Texte interprété, <a href="lien">Lien<a>, affichera une lien, <b>ceci sera en gras</b>

<balise><!--signale qu'il faut convertir le texte en entité html-->

Blablabla ... exemple :
<?php
$var = 'inutile';
Texte totalement <?php echo $var; ?>.
?>
blablabla...

</balise><!--le texte va être de nouveau interprété après cette balise-->


J'ai donc quelque chose comme ça :
$text = preg_replace('#<balise>(.+)</balise>#isU', '<div class="code">$1</div>', $text);

et je voudrais ajouté faire un htmlentities sur le "$1" pour le convertir en entité html, comme ça ce qui sera contenu dans les balises sera converti, pas le reste. Seulement, ça n'a pas l'air de vouloir marché, faire '<div class="code">.'htmlentities($1).'</div>' ne fonctionne pas...

Merci d'avance pour votre aide :)
A voir également:

21 réponses

Utilisateur anonyme
2 oct. 2009 à 17:55
Ok, je vais voir GeSHi de plus près tout de même, au cas ou j'aurais à colorer autre chose que du php ^^

EDIT > en fait, il y a beaucoup plus simple : https://www.php.net/manual/fr/function.preg-replace-callback.php
0