Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 27

Thema: Alle Links einer Seite auslesen (+ spezifizierung)

  1. #1
    Teeny
    Registriert seit
    24.05.2009
    Beiträge
    22
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Alle Links einer Seite auslesen (+ spezifizierung)

    N'abend,

    Habe schon wieder eine Frage, langsam wird es peinlich - so oft.

    Also, ich möchte gerne alle Links einer Seite auslesen:
    Beispiel die Seite eines Freundes:

    Link:
    http://softnation.de

    Da soll mir dann unter anderem folgendes angezeigt werden:
    ?p=12&aid=62
    ?p=30&id=4
    ?p=12&aid=62
    ?p=30&id=4
    ...
    und so weiter...
    Eben alle Links zwischen: <a href=" und dem darauf folgenden "
    Also beispiel:
    HTML-Code:
    <a href="http://google.de" target="_blank">
    Daraus möchte ich dann:
    http://google.de genommen haben, und das eben mit jedem Link der Webseite.

    Gegooglet habe ich danach schon eine längere Zeit, jedoch nie etwas brauchbares gefunden.

    Ich weis das es so etwa in der Richtung klappen könnte:
    PHP-Code:
     preg_match_all("!<a.*?href=\'([^\"]*)\'[^>]*>(.*?)</a>!",$content,$ergebnisse); 

    Jedoch habe ich davon keine Ahnung, auch von den ganzen Zeichen - ich kann zwar PHP aber soweit ging mein Horizont bis jetzt noch nicht.
    Dazu kann ich aber sagen: Ich habe versucht mir die Zeichen anzueignen und mir alles mal durchzulesen zu den Zeichen aber ich habe es nicht verstanden...

    Ich hoffe mir kann jemand bei dem Problem helfen.
    Ich kann ja schonmal zeigen wie weit ich in etwa gekommen bin:
    PHP-Code:
    <?php
     
      
    // HTML Datei einlesen
      
    $content file_get_contents("http://softnation.de");

      
    // Links aus der Variable holen
      
    preg_match_all("!<a.*?href=\'([^\"]*)\'[^>]*>(.*?)</a>!",$content,$ergebnisse);
     
      
    // Alle Links ausgeben
      
    foreach ($ergebnisse as $link)
      {
       echo 
    $link."<br>";

      }
     
     
    ?>
    Er zeigt mir dann aber einfach nur: Array Array Array an.
    Also, er soll mir alle Links ausgeben, untereinander.

    Zweiter Teil - Spezifizierung:

    Wie kann ich zum ersten Teil, wenn er alle Links ausgibt, zum Beispiel nur die Links ausgeben die mit: anfangen?

    Beispiel:

    HTML-Code:
    <a href="http://google.de/texttexttext">
    Gibt er nicht aus.

    HTML-Code:
    <a href="http://youtube.com/nochweitererLink">
    Gibt er aus!


    Wie kann ich das realisieren?
    Also ich habe wirklich schon versucht euch nicht wieder "belästigen" zu müssen, jedoch habe ich noch nichts passendes gefunden

    Dankeschön...
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Alle Links einer Seite auslesen (+ spezifizierung)

    Ja es sind Arrays!
    Gib sie mal mit print_r aus statt mit echo.
    Liegt an den ( ) im regulären Ausdrück. Für jeden Klammerausdruck ein Array-Element.
    Außerdem:
    Nach dem <a das .*? macht herzlich wenig Sinn, weil dadurch so gut wie alles akzeptiert wird. Mach es lieber so: [^<]*?

    Vielel liebe Grüße
    The User

  3. #3
    Teeny
    Themenstarter

    Registriert seit
    24.05.2009
    Beiträge
    22
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Alle Links einer Seite auslesen (+ spezifizierung)

    Vielleicht hab ichs falsch verstanden aber ich habe es jetzt so:

    PHP-Code:
    <?php
     
      
    // HTML Datei einlesen
      
    $content file_get_contents("http://softnation.de");

      
    // Links aus der Variable holen
      
    preg_match_all("!<a[^<]*?href=\'([^\"]*)\'[^>]*>(.*?)</a>!",$content,$ergebnisse);
     
      
    // Alle Links ausgeben
      
    foreach ($ergebnisse as $link)
      {
      
    print_r ($link);

      }
     
     
    ?>
    Und er gibt aus:

    Array ( ) Array ( ) Array ( )
    Was habe ich falsch gemacht?

    Gruß
    Verzweiflung

  4. #4
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Alle Links einer Seite auslesen (+ spezifizierung)

    Mach den regulären Ausdruck mal so:
    PHP-Code:
    $regexp '~<a[^>]*href="(.*)".*>(.*)</a>~Uis'
    Das sollte gehen.
    Geändert von The User (29.05.2009 um 01:30 Uhr)

  5. #5
    Teeny
    Themenstarter

    Registriert seit
    24.05.2009
    Beiträge
    22
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Alle Links einer Seite auslesen (+ spezifizierung)

    PHP-Code:
    <?php
     
      
    // HTML Datei einlesen
      
    $content file_get_contents("http://softnation.de");

      
    // Links aus der Variable holen

      
    preg_match_all('~<a[^>]*href="(.*)".*>(.*)</a>~Uis~',$content,$ergebnisse);
     
      
    // Alle Links ausgeben
      
    foreach ($ergebnisse as $link)
      {
      
    print_r ($link);

      }
     
     
    ?>
    Dann kommt die Fehlermeldung:
    Warning: preg_match_all() [function.preg-match-all]: Unknown modifier '~' in ..... on line 8

    Warning: Invalid argument supplied for foreach() in ..... on line 11
    Mh...

    Hilfe
    Aber vielen dank, dass du dich so spät noch um mich "kümmerst"
    Geändert von Verzweiflung (29.05.2009 um 18:07 Uhr)

  6. #6
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Alle Links einer Seite auslesen (+ spezifizierung)

    Sorry, letzte Tilde einfach weg, habs oben korrigiert.

  7. #7
    Teeny
    Themenstarter

    Registriert seit
    24.05.2009
    Beiträge
    22
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Alle Links einer Seite auslesen (+ spezifizierung)

    Funktioniert perfekt! Juhu!

    Weist du auch wie ich den Problembereich 2 löse?

    Also zum Beispiel, dass nur Links ausgegeben werden, die mit:
    http://youtube.com (als Beispiel) anfangen?

    Gruß
    Verzweiflung

    PS:

    Aktuell sieht die Ausgabe in etwa so aus:
    Array ( [0] => Weiterlesen [1] => Weiterlesen [2] => Weiterlesen [3] => Weiterlesen [4] => Quelle [5] => Kommentare [6] => Quelle [7] => Apple gegen Psystar [8]
    Kann man es auch machen, dass die Ausgabe in etwa so aussieht?

    Weiterlesen
    Weiterlesen
    Weiterlesen
    Weiterlesen
    Quelle
    Kommentare
    Quelle
    Apple gegen Psystar
    Gute Nacht
    Geändert von Verzweiflung (29.05.2009 um 02:16 Uhr)

  8. #8
    Pion
    Gast

    Standard AW: Alle Links einer Seite auslesen (+ spezifizierung)

    Code:
    <?php
     
      // HTML Datei einlesen
      $content = file_get_contents("http://softnation.de");
    
      // Links aus der Variable holen
    
      preg_match_all('~<a[^>]*href="(.*)".*>(.*)</a>~Uis',$content,$ergebnisse);
     
      // Alle Links ausgeben
      foreach ($ergebnisse as $link)
      {
      foreach ($link as $test)
      {
    
    echo $test."<br>";
    }
      }
      ?>
    Um dann youtube rauszufilten muss du in die innere foreach zb aus den Link ein youtube , suchen, und wenn youtube vorhanden ist ausgeben, kann ich dir erst machen wenn ich von der arbeit komme muss nun gehen sry

  9. #9
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Alle Links einer Seite auslesen (+ spezifizierung)

    Oder in den Regexp packen. Hinter das href=", nicht vergessen zu escapen!

  10. #10
    Teeny
    Themenstarter

    Registriert seit
    24.05.2009
    Beiträge
    22
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Alle Links einer Seite auslesen (+ spezifizierung)

    @Pion:

    Dankeschön! Damit wird alles perfekt untereinander ausgegeben.
    Jetzt habe ich aber noch ein kleines Problemchen:
    Momentan gibt er so etwas aus (gekürzter Ausschnitt des Gesamten):



    A = er gibt die Links so aus, wie sie auf der Seite zu finden sind, also:
    HTML-Code:
    <a href="link.de">Linktext</a>
    B = er gibt die Linkurl's aus:
    HTML-Code:
    link.de
    Dadrunter wäre noch:

    C = er gibt die Linktexte nur aus:
    HTML-Code:
    Linktext
    Wie kann ich machen, dass er nur die Linkurl's ausgibt? Also nur die der Kategorie B?

    Und zum nächsten Teil, dass mit der Spezifizierung habe ich noch nicht so ganz verstanden, also ich müsste den Youtube Link mit in das Regexp packen:
    PHP-Code:
    ~<a[^>]*href="http://youtube.com(.*)".*>(.*)</a>~Uis 
    Nur, wie zu erwarten funktioniert das nicht (er gibt nichts aus). Wie kann ich nun den Doppelpunkt, Slash und den Punkt so umschreiben, dass es passt?

    Dankeschön

Ähnliche Themen

  1. inerhalb einer HTML Seite links setzten
    Von xbolten im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 24.06.2007, 14:07
  2. Verzeichnisnamen (und alle dateien) mit php auslesen
    Von Cpt. Rick im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 9
    Letzter Beitrag: 20.06.2007, 19:23
  3. Annfang einer Satzes oben links in einer Tabelle anfangen
    Von tevin im Forum HTML & CSS Forum
    Antworten: 6
    Letzter Beitrag: 20.06.2007, 18:54
  4. Daten von Seite auslesen und auf anderer Seite anzeigen
    Von Timmy20 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 12
    Letzter Beitrag: 24.02.2006, 21:44
  5. Antworten: 1
    Letzter Beitrag: 07.12.2005, 14:31

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •