Bonsoir, voici mon problème :

dans un texte, je veux pouvoir mettre des balises du type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<script_php>chemin/vers/le/script.php</script_php>
et utiliser la fonction preg_replace, ou preg_replace_callback peu importe pour remplacer ce BBcode par le contenu du fichier php, évalué.

Cela fonctionne partiellement... En effet en utilisant directement la fonction include, sans passer par preg replace, l'inclusion est parfaite, mais en utilisant preg_replace, le javascript est passé en CDATA, les balises de style ne sont pas prises en compte... bref la misère.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
preg_replace('#<script_php>(.*)</script_php>#uie',"include('$1')", $monText)
Ca fait quelques jours que j'essaye de trouver des solutions, mais sans succès, quelqu'un a t il déjà eu ce problème ?

Merci

EDIT : Une solution proposée a été d'utiliser la fonction 'eval' d'une manière bricolée, mais cela ne fonctionne pas vraiment pour ma part, pourtant cela devrait... voici l'idée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
$monTextAvecBBcode = '...';
$monTextAEvaluer = preg_replace('#<script_php>(.*)</script_php>#iu',"<?php include('$1'); ?>", $monTextAvecBBcode);
echo eval('?'.'>'.$monTextAEvaluer.'<'.'?'.'php');
L'intérêt de placer des balises fermantes et ouvrantes respectivement au début et la fin du texte permettrait justement de ne pas interpréter la partie de la chaine de caractères située en dehors des balises php que nous avons placées grâce au preg_replace, puisque l'ensemble de la chaine est considérée comme du code php par eval.