Parsage de bbcode

Résolu
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é. 
}
?>

1 réponse

  1. 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