Frage zur Einbindung von BB Codes

SantaCruze

Erfahrenes Mitglied
Moin zusammen :) Und zwar will ich einen text, der mit BB Codes versehen ist aus der datenbank auslesen und anzeigen lassen. Das ganze sieht bei mir so aus :


PHP:
	    function ally_getdesc($allyid)
    {  
	 $this->query("SELECT * FROM allys WHERE id='$allyid';");
     $this->err();  
        while ($row = $this->fetch())
        {
            $row['desc'];
        }
		$desc = $row['desc'];
		$desc = $this->bbcode($desc);
		return $desc;
    }
	
	
	
	
function bbcode($input)
{
global $smilie_find, $smilie_replace;

$input = nl2br(htmlspecialchars(trim($input)));

// smilies parsen
for($i=0; $i < count($smilie_find); $i++)
$input = str_replace($smilie_find["$i"], $smilie_replace["$i"], $input);

// [b], [u], [i] en [s]
$input = preg_replace('!\[u\](.*?)\[/u\]!', "<u>\\1</u>", $input);
$input = preg_replace('!\[b\](.*?)\[/b\]!', "<b>\\1</b>", $input);
$input = preg_replace('!\[i\](.*?)\[/i\]!', "<i>\\1</i>", $input);
$input = preg_replace('!\[s\](.*?)\[/s\]!', "<s>\\1</s>", $input);

// letter grootte
$input = preg_replace("#\[size=([\-\+]?[1-2]?[0-9])\](.*?)\[/size\]#si", "<font size='\\1'>\\2</font>", $input);
// letter kleur
$input = preg_replace("#\[color=(\#[0-9A-F]{6}|[a-z\-]+)\](.*?)\[/color\]#si", "<font color='\\1'>\\2</font>", $input);

// de * Wesley Geysels code na maken met [me] en [me=] tags
$input = preg_replace('!\[me=((\w)*?)\]!', "<font color=\"#FF0000\">* \\1</font>", $input);
$input = preg_replace('!\[me\]((.|\n)*?)\[/me\]!', "<font color=\"#FF0000\">* \\1</font>", $input);

// tags om een lijst te maken
$input = str_replace("
", "<ul>", $input);
$input = str_replace("", "<ul>", $input);
$input = str_replace("
", "<li>", $input);
$input = str_replace("", "<li>", $input);
$input = str_replace("
", "</ul>", $input);
$input = str_replace("", "</ol>", $input);
$input = str_replace("", "</ul>", $input);
$input = str_replace("[/listo]", "</ol>", $input);
$input = preg_replace("/\[list=([a1])\]/si", "<ol type=\"\\1\">", $input);

$input = str_replace("", "</blockquote>", $input);
$input = preg_replace('!\[ code=((\w)*?)\ ]!', "<blockquote class=\"code\"><b>Bestandsnaam: <?php highlight_string( 1// ); ?> </b><br><br>", $input);

// de [url] (([^\\[) en [url=] tags
$input = eregi_replace("\[url\][[:space:]]*(http://)?([^\\[]*)[[:space:]]*\[/url\]", "<a href=\"http://\\2/\" target=\"_blank\">\\2</a>", $input);
$input = eregi_replace("\\[url=([^\\[]*)\\]([^\\[]*)\\[/url\\]","<a href=\"\\1\" target=_blank>\\2</a>",$input);

// maak automatisch van http://www.site.nl een link
$input = preg_replace("#([\n ])([a-z]+?)://([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]+)#i", "\\1<a href=\"\\2://\\3\" target=\"_blank\">\\2://\\3</a>", $input);
// maak automatisch van www.site.nl een link
$input = preg_replace("#([\n ])www\.([a-z0-9\-]+)\.([a-z0-9\-.\~]+)((?:/[a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]*)?)#i", "\\1<a href=\"http://www.\\2.\\3\\4/\" target=\"_blank\">www.\\2.\\3\\4</a>", $input);
// maak automatisch van jan@jan.nl een email-link
$input = preg_replace("#([\n ])([a-z0-9\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)?[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $input);

// de tag
$input = preg_replace("#\[img\](http(s)?://)([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]+)\[/img\]#si", "<img src\"\\1\\3\">", $input);

return $input;
}

Aber auslesen bzw. anzeigen tut er trotzdem nur Test.

Also wo liegt der Fehler? =)
 
Guten Morgen

1. Funktion:
- Das Semikolon nach dem Query kannst du weglassen
- Wenn $allyid numerisch ist, kannst du die einfachen Anführungszeichen weglassen
- Was soll folgendes bewirken?
PHP:
        while ($row = $this->fetch())
        {
            $row['desc'];
        }

Hast du schonmal versucht, $row['desc'] auszugeben, ohne dass der Wert mit bbcode() bearbeitet wurde? Sind da überhaupt verwertbare Daten drin? Lern strukturiert zu debuggen, sprich gib die Daten Stück für Stück aus oder kommentiere Teile fehlerhafter Abschnitte aus, um den Fehler einzugrenzen. Zu jedem bisschen ein Foreneintrag zu machen und uns hier dann Zeilenweise Code an den Kopf zu werfen bringt dich nicht weiter.

Gruss
De Igäl
 
Zurück