Page 1 sur 1

Interpreter code comme etant html entre 2 balises

Posté : 02 oct. 2008, 16:54
par eric8787
Bonjour,

Je sèche sur ce problème depuis 2 jours.

Dans un formulaire, j'aimerai permettre l'ajout par les utilisateurs de code HTML. mais pour limiter les possibilités, j'aimerai que ce code HTML soit entouré des balises <pre> et </pre> ou autre ...

Voici donc le code que j'ai dans la page affichage :

Code : Tout sélectionner

$texte = $article['texte'] ; preg_match_all("#<pre>(.*)</pre>#sU", $texte, $pre); $suppr = '<pre>|</pre>'; for($i=0;$i < count($pre[0]); $i++) { $modif = preg_replace($suppr,'',$pre[0][$i]); $texte = str_replace($modif,html_entity_decode($modif),$texte); } echo'<td align="left" valign="top" width="75%"><p align="justify"><br>'.stripslashes($texte).'</td>';
Ben malheureusement ça marche pas. pas d'erreurs, mais les balises "pre" ne sont pas supprimées, et le code n'est pas interpreté.

Il s'agit d'un bout de code que j'ai trouvé ici : http://www.crea-web.fr/php/afficher_balises_html.html

Si quelqu'un pouvait m'aider

Un grand merci.

eric

Posté : 02 oct. 2008, 21:12
par sadeq
Manque les délimiteurs de RegEx dans $suppr.

Correction:
$suppr = '#<pre>|</pre>#i';

Pas mieux :-)

Posté : 03 oct. 2008, 09:55
par eric8787
bonjour,

Malheureusement c'est pas mieux.
Mon code :

Code : Tout sélectionner

preg_match_all("#[html](.*)[/html]#sU", $article['texte'], $pre); $suppr = '#[html]|[/html]#i'; for($i=0;$i < count($pre[0]); $i++) { $modif = preg_replace($suppr,'',$pre[0][$i]); $article['texte'] = str_replace($modif,html_entity_decode($modif),$article['texte']); }
Rien ne se passe.
le code est considere comme du texte alors que je veux qu'il ressorte en html.
les balises ne sont pas supprimées.

merci de votre aide

eric