Antje Bijken: Aus eingelesener Website (in Variable) alle Links ausfiltern?

Hallo,

mein Problem:

ich habe eine Website eingelesen, diese liegt nun in einer Variablen. Aus dieser möchte ich nun alle Link separieren, so dass ich eine Liste erhalte wie etwa folgt:

http://www.link.de
http://www.zweiterlink.de
http://www.nocheinlink.de
[...]

Kann mir jemand weiterhelfen?
Gruss und Kuss,
Antje

  1. Hallo,

    Kann mir jemand weiterhelfen?

    Dieses Problem löst du am besten mit regulären Ausdrücken. Dieser Link hilft dir dabei sicher weiter: http://www.dclp-faq.de/q-regexp-links-finden.html. Das hilft dir sicher weiter.

    Grüße aus Darmstadt,
    Benjamin

  2. hi,

    http://www.link.de
    http://www.zweiterlink.de
    http://www.nocheinlink.de

    $zeile = str_replace("<a href=""," ",$zeile);
    $zeile = str_replace("</a>""," ",$zeile);

    ungefähr so denke ich....

    Kuss,
    wie unverschämmt ;-)

    Antje

  3. hi,

    http://www.link.de
    http://www.zweiterlink.de
    http://www.nocheinlink.de

    so wohl eher sorry::::

    $zeile = str_replace("<a href="," ",$zeile);
    $zeile = str_replace("</a>"," ",$zeile);

    ungefähr so denke ich....

    Kuss,
    wie unverschämmt ;-)

    Antje

    1. Hallo,

      $zeile = str_replace("<a href="," ",$zeile);
      $zeile = str_replace("</a>"," ",$zeile);

      Was willst du mit str_replace erreichen? Damit wird ein String durch einen anderen ersetzt. Sie will doch die Daten in einer Liste haben... bie str_replace, sind die Daten weg.

      Witzige Mailadresse, im Übrigen ;-)

      Grüße aus Darmstadt,
      Benjamin

  4. Moin!

    ich habe eine Website eingelesen, diese liegt nun in einer Variablen. Aus dieser möchte ich nun alle Link separieren, so dass ich eine Liste erhalte wie etwa folgt:

    Ich habe für sowas mal eine Lösung programmiert:

    Ausgangslage: Die einzelnen Zeilen der Seite liegen im Array $seite - eingelesen mit $seite = file('dateiname').

    for ($i=0;$i<count($seite);$i++)
    {
      preg_match_all("(<[aA] [^>]*>[^<]*</[aA]>)",$seite[$i],$resultat,PREG_SET_ORDER);
      if (count($resultat)>0)
      {
        foreach ($resultat as $einlink)
        {
          eregi("href="([^"]*)"",$einlink[0],$href);
          eregi(">(.*)</a>",$einlink[0],$linktext);
          echo "Linktext:".$linktext[1]." Linkziel:".$href[1]."<br>";
        }
      }
    }

    Diese Schleife sucht zweistufig:
    Zuerst werden alle <a>-Elemente herausgesucht. Wenn eins gefunden wurde, dann wird nach dem Text zwischen <a> und </a> gesucht, sowie der Inhalt des href-Attributes. Kleiner Schönheitsfehler: Das Linkziel muß in doppelten Anführungszeichen stehen, sonst wird nichts gefunden. Ist aber schnell zu reparieren.

    - Sven Rautenberg

    --
    Diese Signatur gilt nur am Freitag.
  5. Viel Dank an Euch!

    Besonders der Link zum Script war hilfreich.

    Kuss Antje