Hi Leute,
Mein folgendes Script hier wandelt alle URL, bzw. Email-Angaben zwischen den Variablen "linkanfang ([link])" und "linkende([/link])"
um. Die Anfänge und Enden werden zuerst ausgelesen, dann der zwischenstehende String mit Rexeps auf die Syntax überprüft. Stimmt die Syntax, wird in einer Variable ($urlbegin[$i]) der Linkcode (z.B. <a href="http://www.oppa.de">http//www.oppa.de</a>) gespeichert.
Jetzt will ich im Beitrag ($beitrag) den ursprünglichen Text (z.B. http://www.patty.de) durch $urlbegin[$i] ersetzen, was ich mit eregi_replace vollbringen wollte ($beitrag=eregi_replace($url,$urlbegin[$i],$beitrag);).
Jedoch wird nicht ersetzt. Setze ich statt $url '[link]' ein, wird '[link]' jedoch ersetzt.
Warum wird nicht auch der komplette String (z.B. [link]http://www.patty.de[/link]) durch den Linkstring ersetzt?
Hier der gesamte Code:
include('inc.php');
$beitrag='cvbvcbcvbcvb [link]http://www.patty.de[/link] jdfhj[link]dhkf[/link]dkf [link]oppa@web.de[/link][link]http://www.oppa.de[/link] dfgdfgfd';
$urlbegin=explode($linkanfang,$beitrag);
$urlend=explode($linkende,$beitrag);
for ($i=0;$i<=count($urlbegin)-1;$i++)
{
$endposition=strpos($urlbegin[$i],$linkende);
if($endposition)
{
$urlbegin[$i]=substr($urlbegin[$i],0,$endposition);
}
if(preg_match(URL,$urlbegin[$i])==true)
{
$url=$urlbegin[$i];
$urlbegin[$i]='<a href="'.$urlbegin[$i].'">'.$urlbegin[$i].'</a>';
$beitrag=eregi_replace($url,$urlbegin[$i],$beitrag);
}
if(preg_match(EMAIL,$urlbegin[$i])==true)
{
$url=$urlbegin[$i];
$urlbegin[$i]='<a href="mailto:'.$urlbegin[$i].'">'.$urlbegin[$i].'</a>';
$beitrag=eregi_replace($url,$urlbegin[$i],$beitrag);
}
}
print $beitrag;
Ich hoffe, dass ich mich verständlich ausgedrückt habe und danke euch schonmal..
MfG Jakob
PS: Bei ereg_replace tritt das selbe Problem auf...