Hallo,
Ich habe hier ein für mich unverständliches Problem mit php:
Ich habe eine Variable $line in der z.B. folgendes steht:
Code:
Ob [
url=index.php?id=1]1[/
url], [
url=index.php?id=2]2[/
url], [
url=index.php?id=3]3[/
url]
nun möchte ich alle
url-Tags durch entsprechende
HTML-Tags ersetzen.
Zuerst also mit einem nur:
PHP-Quellcode:
$p=
strpos($line,"
[url=");
if (($p<>null)
or (
substr($line,0,5)=="
[url="))
{
$s=
substr($line,$p+5,
strpos($line,'
]')-$p-5);
$line=
str_replace("
[url=".$s."
]", "
<a href=\"".$s."
\">", $line);
}
Super! Es funktioniert, aber jetzt kommt es:
Man sollte ja annehmen das wenn ich das ganze 2x hintereinander schreibe:
PHP-Quellcode:
$p=
strpos($line,"
[url=");
if (($p<>null)
or (
substr($line,0,5)=="
[url="))
{
$s=
substr($line,$p+5,
strpos($line,'
]')-$p-5);
$line=
str_replace("
[url=".$s."
]", "
<a href=\"".$s."
\">", $line);
}
$p=
strpos($line,"
[url=");
if (($p<>null)
or (
substr($line,0,5)=="
[url="))
{
$s=
substr($line,$p+5,
strpos($line,'
]')-$p-5);
$line=
str_replace("
[url=".$s."
]", "
<a href=\"".$s."
\">", $line);
}
Der das auch mit dem 2. macht, ist aber nicht so!
Wobei ich doch aber den 1. Tag ersetzt habe wodurch dieser nicht mehr da sein sollte → es wird der nächste gefunden.
da frage ich mich: warum macht der nicht das was man erwartet?
Und: wie kann ich beliebig viele davon ersetzen?