Parsage de bbcode

Résolu
crocoscore Messages postés 165 Date d'inscription   Statut Membre Dernière intervention   -  
crocoscore Messages postés 165 Date d'inscription   Statut Membre Dernière intervention   -
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 165 Date d'inscription   Statut Membre Dernière intervention   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