phpbar.de logo

Mailinglisten-Archive

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

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

Roland Spielhofer h9440241_(at)_edv1.boku.ac.at
Thu, 15 Feb 2001 13:13:52 +0100


On 15 Feb 01, at 11:54, CK wrote:

> 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"); }

Leider krieg ich immer einen
wrong parameter count fürs preg_replace
Laut Manual fehlt das Subject.
Wenn ich hier aber die Variable reinschreibe, die durchsucht wird 
($text), hängt sich php auf...
*schnief*

Hat wer eine Idee?



php::bar PHP Wiki   -   Listenarchive