ja lijkt me logisch dat PHP niet zomaar (b) veranderd in <b>...
daarvoor heb ik deze functie gemaakt:

<?
function bbcode($where){
	// BB-code
	$bb_original = array(
		"#\[b\](.+?)\[\/b\]#is",
		"#\[i\](.+?)\[\/i\]#is"
		);
	$bb_replace =  array(
		"<b>\\1</b>",
		"<i>\\1</i>"
		);
	
	$bb_count = count($bb_original)-1;
	
	for ($i=0;$i<=$bb_count;$i++){
		$where = preg_replace($bb_original[$i], $bb_replace[$i], $where);
		}

	// Smilies
	$bb_smile_tekst = array(
		":)",
		":("
		);
	$bb_smile_image = array(
		":-)",
		":-("
		);
	
	$smile_count = count($bb_smile_tekst)-1;
	
	for ($i=0;$i<=$smile_count;$i++){
		$where = str_replace($bb_smile_tekst[$i], $bb_smile_image[$i], $where);
		}
	
	$where = nl2br($where);
	
	return $where;
	}
?>

klinkt logisch en zou moeten werken...
helaas dat doet hij dus niet, want als ik deze functie include op mijn index.php en vervolgens de functie opvraag met:

<?
$tekst = "[b]Hier[/b] een [i]tekst[/i] voor de smilie test. :)\n";
bbcode($tekst);
echo $tekst;

dan pakt hij geen van alle replaces... zelfs de nl2br(); functie word genegeerd...
kan iemand mij vertellen wat ik fout doe?
<?php
$tekst = "Hier een tekst voor de smilie test. :)\n";
$tekst = bbcode($tekst);
echo $tekst;
?>

Je laat de functie wel uitvoeren, maar doet niks met het resultaat. Daarom moet $tekst = bbcode($tekst)
...

mag ik me schamen? :$
kan gebeuren (A)

Reageren