hallo Leute,
ich habe folgendes Problem:
Ich habe eine Funktion, die mehrere Dinge in einem Dokument sucht udn durch andere ersetzt (so wie BB-Code)
Nun möchte ich aber etwas durch php und HTML Code ersetzen.
jedoch parst er bei der Funktuion ereg_replace den PHP Code nicht.
Ein Versuch mit dem Parameter /e führte zu einer Fehlermeldung:
Warning: preg_replace() [function.preg-replace]: Unknown modifier '/' in ...
die Funktion preg_replace_callback benötigt ein array, was aufgrund meiner Funktion sehr schwierig zu erstellen ist.
hier mal mein bisheriger code
Es handelt sich hier um die Zeile, in der [bild=x] durch ein Bild ersetzt werden soll, welches seinen Dateinamen und die Bildunterschrift aus einer Datenbank ausließt.
Bitte um Hilfe und um keine Aussage wie "ließ dir das Manual zu ereg_replace_callback durch."
mfg
alex
ich habe folgendes Problem:
Ich habe eine Funktion, die mehrere Dinge in einem Dokument sucht udn durch andere ersetzt (so wie BB-Code)
Nun möchte ich aber etwas durch php und HTML Code ersetzen.
jedoch parst er bei der Funktuion ereg_replace den PHP Code nicht.
Ein Versuch mit dem Parameter /e führte zu einer Fehlermeldung:
Warning: preg_replace() [function.preg-replace]: Unknown modifier '/' in ...
die Funktion preg_replace_callback benötigt ein array, was aufgrund meiner Funktion sehr schwierig zu erstellen ist.
hier mal mein bisheriger code
PHP-Code:
function ersetzen($a,$b)
{
$search = array ("'<script[^>]*?>.*?</script>'si",
"'<[/!]*?[^<>]*?>'si",);
$replace = array ("",
"",);
$b = preg_replace($search, $replace, $a);
$b = preg_replace("!\[bild=(.*?)\]!/e", "<?php \$bildnr = $1;\$m=mysql_query(\"select * from Bilder where bildnr='\$bildnr'\");?><img src=\"files/<?php echo mysql_result(\$m,0,2);?>\"></img><br><?php echo \"test\";echo mysql_result(\$m,0,1);?>", $b);
$b = preg_replace("!\[b\](.*?)\[/b\]!s","<div style=\"font-weight:bold\">$1</div>",$b);
$b = preg_replace("!\[i\](.*?)\[/i\]!s","<div style=\"font-style:italic\">$1</div>",$b);
$b = preg_replace("!\[u\](.*?)\[/u\]!s","<div style=\"text-decoration:underline\">$1</div>",$b);
$b = preg_replace("!\[q\](.*?)\[/q\]!s", "<table border=\"1\" class=\"quote\"><td>Zitat:<br>$1</div></td></table>",$b);
$b = preg_replace("!\[url=\"(.*?)\"\](.*?)\[/url\]!", "<a href=\"$1\" target=\"_blank\">$2</a>", $b);
$b = preg_replace("!\[img\](.*?)\[/img\]!", "<img src=\"$1\"></img>", $b);
$b = preg_replace("!\[color=\"(.*?)\"\](.*?)\[/color\]!s", "<font color=\"$1\">$2</font>", $b);
$b = preg_replace("!\[center\](.*?)\[/center\]!s", "<center>$1</center>", $b);
$b = preg_replace("!\[size=\"(.*?)\"\](.*?)\[/size\]!s", "<div style=\"font-size:$1pt;\">$2</div>", $b);
$b = preg_replace("!\[list\](.*?)\[/list\]!s", "<ul>$1</ul>", $b);
$b = preg_replace("!\[\*\](.*?)\[/\*\]!s", "<li>$1</li>", $b);
$b = preg_replace("!\[size=(.*?)\](.*?)\[/size\]!s", "<div style=\"font-size:$1pt;\">$2</div>", $b);
$b = rawurldecode ($b);
echo nl2br($b);
}
Bitte um Hilfe und um keine Aussage wie "ließ dir das Manual zu ereg_replace_callback durch."
mfg
alex

Kommentar