phpbar.de logo

Mailinglisten-Archive

[php] Re[2]: [php] link-parsing

[php] Re[2]: [php] link-parsing

CK ckruse_(at)_freenet.de
Thu, 15 Feb 2001 11:54:30 +0000


Hi,

>> ich kriege: _linkein_ http://irgendwo.com _linkaus_
>> und möchte das ersetzen mit
>> <a href='http://irgendwo.com'>http://irgendwo.com</a>
>>

> if ereg("_linkein_(.)+_linkaus_",$string ,$regs) {
>     echo "<a href='$regs[1]'>$regs[1]</a>";
> }

> sollte funktionieren...
Nein, eigentlich nicht.
Das + muss mit in die Klammer und ich wuerde preg_match benutzen
(schneller). Ausserdem ist der Ausdruck greedy, will heissen, er
parst so:

$str = "_linkein_blablabla_linkaus_ asdasdpasd _linkein_blablabla_linkaus_";
if(ereg("_linkein_(.)+_linkaus_",$string ,$regs))
 { echo "<a href='$regs[1]'>$regs[1]</a>"; }

gibt die ausgabe:
<a href='blablabla_linkaus_ asdasdpasd _linkein_blablabla'>blablabla_linkaus_ asdasdpasd _linkein_blablabla</a>


Besser sollte es so funzen:
while(preg_match("!_linkein_(.+?)_linkaus_!s",$str,$back))
 { preg_replace('!_linkein_'.$back[1].'_linkaus_!','<a href="'.$back[1].'">'.$back[1]."</a>\n"); }


-- 
mfg
 CK1                            mailto:ckruse_(at)_freenet.de
 http://wwwtech.de




php::bar PHP Wiki   -   Listenarchive