Mortimer: preg_replace ersetzt alles nur 1x

Hi

Irgendwie ersetzt mein preg_replace alle ausfürhungen nur 1x =/

So ersetzt er im Text nur jedesmal das erste mal eine Adresse zu einem Link...

$text = preg_replace('"(( |^)((ftp|http|https){1}://)[-a-zA-Z0-9@:%_+.~#?&//=]+)"i','<a href="\1" target="_blank">\1</a>', $text);
$text = preg_replace('"( |^)(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)"i','\1<a href="http://\2" target="_blank">\2</a>', $text);

Bei Zitatetn verhält er sich genauso.... =/

$text = preg_replace("/[quote](.*?)[/quote]/si",$header_quote.'\1'.$footer_quote, $text);
$text = preg_replace("/[quote=(.*?)](.*?)[/quote]/si",'Von: \1'.$header_quote.'\2'.$footer_quote, $text);

Sind da Fehler in den ausfürhungen selber?

ciao

  1. Hallo Mortimer.

    Irgendwie ersetzt mein preg_replace alle ausfürhungen nur 1x =/

    Hm, schon mal den g-Modifier ausprobiert?

    Freundschaft!
    Siechfred

    1. Hm, schon mal den g-Modifier ausprobiert?

      Was soll das sein/wo bekomme ich den/wie setz ich den ein ? =)

      ciao

      1. Hallo Mortimer.

        Was soll das sein/wo bekomme ich den/wie setz ich den ein ? =)

        Zum g-Modifier (und auch sonst sehr lesenswert):
        http://www.rrz.uni-hamburg.de/RRZ/W.Wiedl/Skripte/CGI-Perl/Regulaere_Ausdruecke/REMatch.htm#3.2

        Einfaches Beispiel:

        $text = "Willi ist witzig";
        $muster_1 = "/i/";
        $muster_2 = "/i/g";
        $ers = "a";
        echo preg_replace($muster_1, $ers, $text); // "Walli ist witzig"
        echo preg_replace($muster_2, $ers, $text); // "Walla ast watzag"

        Freundschaft!
        Siechfred

        --
        Wissen bedeutet zu wissen, wo es steht.