Ankündigung

Einklappen
Keine Ankündigung bisher.

nur URL Adresse aus einer Zeile lesen

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

  • nur URL Adresse aus einer Zeile lesen

    Hallo zusammen,

    ich bin Gustav und bin gerade dabei mit PHP meine ersten Erfahrungen zu machen.

    Ich stehe gerade vor der Problemstellung das ich eine Datei mit ganz vielen URL Adressen habe. Ich habe es schon geschafft die Datei zu öffnen und in einem Arry zu schreiben und Zeilenweise auszugeben.

    Allerdings bekomme ich es nicht hin die Zeilen richtig auszuwerten :-/

    Meine Datei sieht folgendermaßen aus:
    Code:
    snip
    ...
    irgend ein test href="http://www.domainadresse.de/abc.php?testABC=2505"><span
    href="http://www.domainadresse.de/abcd.php?testABCD=134"><span
    noch irgend ein text href="http://www.domainadresse.de/abcdBISxyz.php?testABCDbisXYZ=2584"><span
    ...
    Ich möchte immer nur den Fett markierten Teil auslesen, also nur die Kompletten URL Adressen.
    Die Abfrage müsste quasi heißen alles nach href=" bis "> ausschneiden! Nur stelle ich mir sehr verkrampft mit der Syntax an und bekomme diese Abfrage nicht hin

    Ich wäre Euch total Dankbar wenn mir jemand diese Code mit einer kurzen Erklärung schreiben könnte.

    viele Grüße

    Gustav


  • #2
    Hallo Gustav,

    es gibt in PHP reguläre Ausdrücke, Das heißt, du kannst bestimmte Dinge aus einen String auslesen, die ein gewisses Muster verfolgen. Dazu benutzt man meist preg_match() oder preg_match_all(). Für dein Beispiel würde es folgendesmaßen aussehen:

    PHP-Code:
    <?php 
     
    $string 
    'snip 
    ... 
    irgend ein test href="http://www.domainadresse.de/abc.php?testABC=2505"><span 
    href="http://www.domainadresse.de/abcd.php?testABCD=134"><span 
    noch irgend ein text href="http://www.domainadresse.de/abcdBISxyz.php?testABCDbisXYZ=2584"><span 
    ... '
    ;


    preg_match_all('/href="(.*?)">/'$string$array); 

    // zum Beispiel Ausgabe  
    echo '<pre>'print_r($arraytrue), '</pre>'

    ?>
    Das heißt, das Ergebnis wird dann in dem Array $array gespeichert. Am besten du guckst dir noch ein paar Tutorials zu "reguläre Ausdrücke", "preg_match" bzw. "preg_match_all" an.

    Mfg

    [Edit] :P, schon wieder erster^^

    Kommentar


    • #3
      PHP-Code:
      preg_match'#href="(.*)">#'$string$treffer ); 
      Bin mit den Regex auch nicht sooo bewandert, aber das könnte funktionieren. Die ergebnisse hast du dann in $treffer[1].
      Mfg Tomtaz
      "Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."

      Kommentar


      • #4
        Z.B.
        PHP-Code:
        $adressen = array();
        foreach(
        $zeilen as $zeile){
            if (
        preg_match('#href=[\'"](.+)[\'"]>#i'$zeile$treffer)){
                
        $adressen[] = $treffer[1];
            }
        }
        var_dump($adressen); 
        Gruss
        L

        Kommentar


        • #5
          Vielen Vielen Dank funktioniert genau so wie ich es brauche! Wie GEIL

          Viele Grüße

          Grustav

          Kommentar


          • #6
            Siehst du, hätte auch gereicht, wenn du es nur in ein Forum postest und nicht in 2 gleichzeitig

            Kommentar

            Lädt...
            X