Mit dem folgenden Code wandel ich [ list] Tags um. Warum funktioniert der Code nur mit $mystring = " ".$mystring; am Anfang? Warum braucht der das Leerzeichen?
PHP-Code:
$mystring = $msg;
$mystring = " ".$mystring;
while (strpos($mystring, "[list") != false) {
$i = strpos($mystring, "[list");
$j = strpos($mystring, "[/list]");
if ($j === false) {
break;
}
if (strpos($mystring, "[list=") == $i) {
$sourcestring = substr($mystring, $i, $j + 6);
$replacestring = preg_replace("/\[list=(.*)](.*)\[\/list\]/siU","<ol start=\"\\1\">\\2</ol>", $sourcestring);
$replacestring = str_replace("[*]", "<li>", $replacestring);
$mystring = str_replace($sourcestring, $replacestring, $mystring);
}
elseif (strpos($mystring, "[list]") == $i) {
$sourcestring = substr($mystring, $i, $j + 6);
$replacestring = preg_replace("/\[list](.*)\[\/list\]/siU","<ul>\\1</ul>", $sourcestring);
$replacestring = str_replace("[*]", "<li>", $replacestring);
$mystring = str_replace($sourcestring, $replacestring, $mystring);
}
}
$msg = $mystring;
Kommentar