Parsage de bbcode
Résolu
crocoscore
Messages postés
176
Statut
Membre
-
crocoscore Messages postés 176 Statut Membre -
crocoscore Messages postés 176 Statut Membre -
Bonjour,
Je suis en train de construire un système de parsage de bbcode. Pour cela j'utilise les regex mais cela ne fonctionne pas, enfin ça fait un peu n'importe quoi...
Voici la fonction, issue du sdZ (modifié) :
Je suis en train de construire un système de parsage de bbcode. Pour cela j'utilise les regex mais cela ne fonctionne pas, enfin ça fait un peu n'importe quoi...
Voici la fonction, issue du sdZ (modifié) :
<?php
function bbcode($content) {
// Parsage des balises
$zcode = array(
''[sous-titre](.+)/sous-titre'isU',
''[italique](.+)/italique'isU',
''[gras](.+)/gras'isU',
''[barre](.+)/barre'isU',
''[lien](.+)/lien'isU',
''[lien url="(.+)"](.+)/lien'isU',
''[citation](.+)/citation'isU',
''[citation nom="(.+)"](.+)/citation'isU',
''[citation lien="(.+)"](.+)/citation'isU',
''[image miniature="(.+)"](.+)/image'isU',//image+miniature
);
$html = array(
'<h2>$1</h2>',
'<em>$1</em>',
'<strong>$1</strong>',
'<del>$1</del>',
'<a href="$1">$1</a>',
'<a href="$1">$2</a>',
'<br /><span class="citation">Citation</span><div class="citation2">$1</div>',
'<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>',
'<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>',
'<a href="$2"><img src="$1" alt="" /></a>',
);
$content = htmlspecialchars($content, ENT_QUOTES);
$content = preg_replace($zcode, $html, $content);
// Rtours à la ligne
$content = preg_replace(''\n'isU', '<br />', $content);
return $content;
}
if (isset($content))
{
if (get_magic_quotes_gpc()) {
$content = stripslashes($content);
}
$content = bbcode($content); // Ecriture du contenu parsé.
}
?>
A voir également:
- Parsage de bbcode
- Bbcode download - Télécharger - Divers Web & Internet
1 réponse
J'ai trouver, voilà mon code final :
<?php
function bbcode($content) {
// Parsage des balises
$zcode = array(
''\[sous-titre\](.+)\[/sous-tire\]'isU',
''\[citation\](.+)\[/citation\]'isU',
''\[italique\](.+)\[/italique\]'isU',
''\[gras\](.+)\[/gras\]'isU',
''\[barre\](.+)\[/barre\]'isU',
''\[lien\](.+)\[/lien\]'isU',
''\[lien url="(.+)"\](.+)\[/lien\]'isU',
''\[image miniature="(.+)"\](.+)\[/image]'isU' //image+miniature
);
$html = array(
'<h2>$1</h2>',
'</p><blockquote>$1</blockquote><p>',
'<em>$1</em>',
'<strong>$1</strong>',
'<del>$1</del>',
'<a href="$1">$1</a>',
'<a href="$1">$2</a>',
'<a href="$2"><img src="$1" alt="" /></a>'
);
$content = htmlspecialchars($content, ENT_QUOTES);
$content = preg_replace($zcode, $html, $content);
// Rtours à la ligne
$content = preg_replace(''\n'isU', '<br />', $content);
return $content;
}
if (isset($content))
{
if (get_magic_quotes_gpc()) {
$content = stripslashes($content);
}
$content = bbcode($content); // Ecriture du contenu parsé.
}
?>