Parsage de bbcode

Résolu
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é) :
<?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=&quot;(.+)&quot;](.+)/lien'isU',
		''[citation](.+)/citation'isU',
		''[citation nom=&quot;(.+)&quot;](.+)/citation'isU',
		''[citation lien=&quot;(.+)&quot;](.+)/citation'isU',
		''[image miniature=&quot;(.+)&quot;](.+)/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

crocoscore Messages postés 176 Statut Membre 5
 
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=&quot;(.+)&quot;\](.+)\[/lien\]'isU',
		''\[image miniature=&quot;(.+)&quot;\](.+)\[/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é. 
}
?>
0