Mailinglisten-Archive |
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