|
|
|
|
Bonjour, je crée actuellement un textarea qui permet au membre d'insérer du bbcode, mais lorsqu'il veut insérer une balise html ( < et > ) et bien, lors de l'affichage ça me met...rien !!
Pourtant, sur ccm, ça fonctionne : <html>, <b>...comment ça se fait ?
Alors comment conserver les balises html ?
Merci à tous,
Configuration: Mac OS X Firefox 2.0.0.13
Tout d'abord merci de ta réponse, mais j'ai essayé les trois sans résultat. Même avec les 3 en même temps. :(
function cur($matches) {
$geshi = new GeSHi($matches[3], $matches[1]);
return '<div class="titcode">'.$matches[2].'</div><div class="code">'.htmlentities(htmlspecialchars(strip_tags($geshi->parse_code()))).'';
} function make($chaine) { $chaine = stripcslashes(html_entity_decode($chaine)); $chaine = preg_replace('/\<bold\>(.+?)\<\/bold\>/', '<strong>$1</strong>', $chaine); $chaine = preg_replace('/\<italic\>(.+?)\<\/italic\>/', '<em>$1</em>', $chaine); $chaine = preg_replace('/\<under\>(.+?)\<\/under\>/', '<u>$1</u>', $chaine); $chaine = preg_replace('/\<image\>(.+?)\<\/image\>/', '<img src="$1" />', $chaine); $chaine = preg_replace('/\<url\>(.+?)\<\/url\>/', '<a href="$1">$1</a>', $chaine); $chaine = preg_replace('/\<title1\>(.+?)\<\/title1\>/', '<p class="title1">$1</p>', $chaine); $chaine = preg_replace('/\<title2\>(.+?)\<\/title2\>/', '<p class="title2">$1</p>', $chaine); $chaine = preg_replace('/\<title3\>(.+?)\<\/title3\>/', '<p class="title3">$1</p>', $chaine); $chaine = preg_replace('/\<left\>(.+?)\<\/left\>/', '<div align="left">$1</div>', $chaine); $chaine = preg_replace('/\<center\>(.+?)\<\/center\>/', '<div align="center">$1</div>', $chaine); $chaine = preg_replace('/\<right\>(.+?)\<\/right\>/', '<div align="right">$1</div>', $chaine); $chaine = preg_replace('/\<info\>(.+?)\<\/info\>/', '<div class="info">$1</div>', $chaine); $chaine = preg_replace('/\<warn\>(.+?)\<\/warn\>/', '<div class="warn">$1</div>', $chaine); $chaine = preg_replace('/\<idea\>(.+?)\<\/idea\>/', '<div class="idea">$1</div>', $chaine); $chaine = preg_replace('/\<color="#(.+?)"\>(.+?)\<\/color\>/', '<font color="#$1">$2</font>', $chaine); $chaine = preg_replace_callback('/\<code language="(.+?)" title="(.+?)"\>(.+?)\<\/code\>/', 'cur', $chaine); $chaine = nl2br($chaine); return($chaine); }</code> |
ARF !!
<textarea name="NAME" id="ID" tabindex="43" class="CLASS" style="width: 300px; height: 80px;" cols="40" rows="4" wrap="virtual"></textarea> ou alors dans ton script tu lui fais modifier < en < a voir Essayez d'être le plus clair possible dans la description de vos problèmes, qu'on puisse vous répondre presque du 1er coup. Merci |
Oui, j'ai déjà pensé à ça :
function make($chaine)
{
$chaine = stripslashes(html_entity_decode($chaine));
$chaine = preg_replace('/\<bold\>(.+?)\<\/bold\>/', '<strong>$1</strong>', $chaine);
$chaine = preg_replace('/\<italic\>(.+?)\<\/italic\>/', '<em>$1</em>', $chaine);
$chaine = preg_replace('/\<under\>(.+?)\<\/under\>/', '<u>$1</u>', $chaine);
$chaine = preg_replace('/\<image\>(.+?)\<\/image\>/', '<img src="$1" />', $chaine);
$chaine = preg_replace('/\<url\>(.+?)\<\/url\>/', '<a href="$1">$1</a>', $chaine);
$chaine = preg_replace('/\<title1\>(.+?)\<\/title1\>/', '<p class="title1">$1</p>', $chaine);
$chaine = preg_replace('/\<title2\>(.+?)\<\/title2\>/', '<p class="title2">$1</p>', $chaine);
$chaine = preg_replace('/\<title3\>(.+?)\<\/title3\>/', '<p class="title3">$1</p>', $chaine);
$chaine = preg_replace('/\<left\>(.+?)\<\/left\>/', '<div align="left">$1</div>', $chaine);
$chaine = preg_replace('/\<center\>(.+?)\<\/center\>/', '<div align="center">$1</div>', $chaine);
$chaine = preg_replace('/\<right\>(.+?)\<\/right\>/', '<div align="right">$1</div>', $chaine);
$chaine = preg_replace('/\<info\>(.+?)\<\/info\>/', '<div class="info">$1</div>', $chaine);
$chaine = preg_replace('/\<warn\>(.+?)\<\/warn\>/', '<div class="warn">$1</div>', $chaine);
$chaine = preg_replace('/\<idea\>(.+?)\<\/idea\>/', '<div class="idea">$1</div>', $chaine);
$chaine = preg_replace('/\<color="#(.+?)"\>(.+?)\<\/color\>/', '<font color="#$1">$2</font>', $chaine);
$chaine = preg_replace_callback('/\<code language="(.+?)" title="(.+?)"\>(.+?)\<\/code\>/', 'cur', $chaine);
$chaine = preg_replace('/\</', '<', $chaine);
$chaine = preg_replace('/\>/', '>', $chaine);
$chaine = nl2br($chaine);
return($chaine);
}
Mais du coup ça affecte aussi les <image>, <url>,etc... Merci beaucoup d'avance, |
Répondre à Snip714
|