Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2003 Teil von Januar

SELFHTML Forumsarchiv
eregi_replace funktioniert nicht...

Informationsseite
  1. Seite (PHP) eregi_replace funktioniert nicht... von Jakob Schneider, 31. 01. 2003, 15:28
nach unten

eregi_replace funktioniert nicht...

Die folgende Nachricht zum Thema stammt von: Jakob Schneider, 31. 01. 2003, 15:28

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...

nach obennach unten

eregi_replace funktioniert nicht...

Die folgende Nachricht zum Thema stammt von: lulu, 31. 01. 2003, 19:07

Huhu Jakob


ich würde Dir die Verwendung von "preg_replace" und eine Konstruktion folgender Art empfehlen:

function get_link($v)
{
 # $v enthält das Textstück zwischen "[link]" und "[/link]"
 # hier syntax checken
 # und entsprechendes Ergebnis zurückliefern

 return $ergebnis;
}

$beitrag = preg_replace('/(\[link\](.*)\[\/link\])/msUei', "get_link('\\2');", $beitrag);




und das solltest Du lesen

http://www.php.net/manual/en/function.preg-replace.php

http://www.php.net/manual/en/pcre.pattern.syntax.php

http://www.php.net/manual/en/pcre.pattern.modifiers.php







Viele Grüße

lulu

--
bythewaythewebsuxgoofflineandenjoytheday

nach obennach unten

Dankeschön!

Die folgende Nachricht zum Thema stammt von: Jakob Schneider, 31. 01. 2003, 21:03

»» Huhu Jakob
Hi,

Ich danke Dir....

»» Viele Grüße
»»
»» lulu
»»

LG Jakob

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2003 Teil von Januar

© 1998-2006 Seite Impressum, Software: Classic Forum