preg_match_all() links identifizieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • preg_match_all() links identifizieren

    Hi Leute,

    ja leider weiss ich mir nicht mehr anders zu helfen als wie Euch zu fragen
    bzgl. eines eigentlich ganz einfachen preg_match_all()

    Ich will aus einem HTML Template alle Links identifizieren und danach
    anylisieren.

    Dafür hab ich mir gedacht das ich einfach schön alle links mit Hilfe
    von Regulären Ausdrücken und preg_match_all() suche und diese
    in einem Array ja dann verarbeiten kann.

    Funktioniert auch bei dem Beispiel:

    PHP-Code:
    1.)
    $text '<a href="?test=123">bla bla</a>
                 <a href="?test=123">bla bla</a>'
    ;

    preg_match_all("/href=\"(.*)\"/i",$text,$url_treffer); 



    2.)
    Funktioniert nicht mehr sobald ein onclick zb danach kommt :(
    $text '<a href="?test=123" onclick="js()">bla bla</a>
                 <a href="?test=123" onclick="js()">bla bla</a>'
    ;

    preg_match_all("/href=\"(.*)\"/i",$text,$url_treffer); 
    1.)
    //Ausgabe
    $url_treffer[1][0] ==> "?test=123" $url_treffer[1][1] ==> "?test=123"

    2.)
    //Ausgabe
    $url_treffer[1][0] ==> '?test=123" onclick="js()"';


    Hab mir auch schon öfters das tut von sky angeschaut aber so richtig
    komm ich nicht dahinter . Könntet ihr mir einen Tip geben?

    Hier ein Online Link: zum testen http://regexp-evaluator.de/evaluator/

    Grüße
    Tom
    Zuletzt geändert von tomtherock; 18.01.2008, 11:07.

  • #2
    Stichwort: UNGREEDY RegExp!
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      oki danke das war der richtige Ansatz danke dir

      das kann ich nur jedem empfehlen der auch noch ned so fit is wie ich
      in Regulären Ausdrücken:
      http://tut.php-quake.net/regex.html

      Bzw kennst du noch ein gutes Buch dazu was ich mir besorgen könnte
      wo das Theme ausführlich und gut verständlich erklärt ist ?

      Hier die Lösung:
      preg_match_all('/<a href="(.*)"/U',$row->text,$url_treffer);

      Kommentar


      • #4
        Ein besonderes Buch dazu kenne ich leider nicht. Aber im Internet gibt es Tuts wie Sand am Meer.
        Übrigens brauchst du den U-Modifier nicht unbedingt. Das folgende würde auch klappen
        PHP-Code:
        $reg '/href="([^"]*)"/'
        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar

        Lädt...
        X