macht preg match unterschiede in Argumentanzahl?

//edit
Fehler behoben..

Umgekehrter Aufruf und es geht








Was ist das denn für ne ... Naja, ihr wisst schon....


Ok, ich hab den Fehler, ich habe 2 Funktionen, einmal die bbcode (das große script) und ein script für listen.
Aufruf:
PHP:
bbcode(bbcode_liste($text));

Die Liste:
PHP:
	function bbcode_liste($text)
	{
		$n					= "\n";
		$naechste_zeile		= '';
		$letzteZeileStar	= -1;
		$letzteZeileRaute	= -1;
		$arr				= explode("\n", $text);
		$imp				= array();

		for($c=0; $c<(count($arr)); $c++) 
		{
			$naechste_zeile = $arr[($c + 1)];

			if(substr($arr[$c], 0, 1) == '*') {
				if($letzteZeileStar == ($c - 1)) {
					if(substr($naechste_zeile, 0, 1) != '*') {
						$imp[$c] = '<li>'.substr($arr[$c], 1, (strlen($arr[$c])) - 1).'</ul>';
					} else {
						$imp[$c] = '<li>'.substr($arr[$c], 1, (strlen($arr[$c])) - 1);
					}
				} else {
					if(substr($naechste_zeile, 0, 1) != '*') {
						$imp[$c] = '<ul><li>'.substr($arr[$c], 1, (strlen($arr[$c])) - 1).'</ul>';
					} else {
						$imp[$c] = '<ul><li>'.substr($arr[$c], 1, (strlen($arr[$c])) - 1);
					}
				}
				$letzteZeileStar = $c;
			} elseif(substr($arr[$c], 0, 1) == '#') {
				if($letzteZeileRaute == ($c - 1)) {
					if(substr($naechste_zeile, 0, 1) != '#') {
						$imp[$c] = '<li>'.substr($arr[$c], 1, (strlen($arr[$c])) - 1).'</ol>';
					} else {
						$imp[$c] = '<li>'.substr($arr[$c], 1, (strlen($arr[$c])) - 1);
					}
				} else {
					if(substr($naechste_zeile, 0, 1) != '#') {
						$imp[$c] = '<ol><li>'.substr($arr[$c], 1, (strlen($arr[$c])) - 1).'</ol>';
					} else {
						$imp[$c] = '<ol><li>'.substr($arr[$c], 1, (strlen($arr[$c])) - 1);
					}
				}
				$letzteZeileRaute = $c;
			} else {
				$imp[$c] = $arr[$c].'<br>';
			}
		}
		
	   return implode("", $imp);
	}

Seht ihr da nen fehler? wenn die Funktion weggelassen wird, klappts :(
 
Zurück