URL aus Link mit regex

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

  • URL aus Link mit regex

    Hallo,

    nach einem Tag Crash Kurs Regex und Suchen im Forum wende ich mich an Euch und hoffe das mir jemand helfen kann.

    Ausgangssituation:
    In meiner Firma gibt es für die MAs keinen Internetzugang.
    Ich möchte Ihnen gerne die BBC Newsseite zur Verfügung stellen.
    Also lese ich den Quelltext der Seite in ein String.
    Nun möchte ich
    1. alle Links herausfiltern (Headlines)
    2. die Quelltexte dieser Links ( News-Inhalt) auslesen und abspeichern
    3. die gefilterten Links ersetzen durch lokale Links (namen der Dateien die die Unterseiteninhalte enthalten).

    Mein Problem liegt derzeit bei 1.
    Mein Regex lautet:
    &(\<a.+(href)\s*=(\"|')+).(.*(\"|\'\>)*)&is

    Dieser gibt in einem subpattern zwar den Link aus, hängt aber noch ein wenig vom Folgetext dran. Könnt ich zwar mit substr. etc. abschneiden, ich möchte aber gerne den regex verändern, so daß nur der Link in der variable steht....

    Kann mir jemand sagen was an meinem regex falsch ist ???

    Vielen Dank im Voraus...

  • #2
    Code:
    $pattern = '%\<a.*href=("|\\')([^\\1]*)\\1.*>(.*)\</a\>%siU';
    
    $text = 'Hallo<a href="abc">def</a>mmm<a target="_top" href=\\'ghi\\'>jkl</a>mmm
    mmm<a href="mno" target="_top">pqr</a>mmm<a class="yY" href="mno" target="_top">pqr</a>mmm';
    
    preg_match_all($pattern, $text, $treffer, PREG_SET_ORDER);
    Ergebnis
    Code:
    (
        [0] => Array
            (
                [0] => <a href="abc">def</a>
                [1] => "
                [2] => abc
                [3] => def
            )
    
        [1] => Array
            (
                [0] => <a target="_top" href='ghi'>jkl</a>
                [1] => '
                [2] => ghi
                [3] => jkl
            )
    
        [2] => Array
            (
                [0] => <a href="mno" target="_top">pqr</a>
                [1] => "
                [2] => mno
                [3] => pqr
            )
    
        [3] => Array
            (
                [0] => <a class="yY" href="mno" target="_top">pqr</a>
                [1] => "
                [2] => mno
                [3] => pqr
            )
    
    )
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Hey Super !

      Es funktioniert. Vielen Dank.
      Werd jetzt mal versuchen das regex zu verstehen und zu schauen worin es sich mit meinem unterscheidet.

      Danke nochmals


      VG

      Kommentar

      Lädt...
      X