de.comp.lang.php.* FAQ

8.8. Wie finde ich alle Links in einer HTML-Datei?

Keywords: Hyperlink

Antwort von Björn Schotte

$zeile sei der Inhalt einer zuvor eingelesenen HTML-Datei. Diese Variable muss innerhalb der While-Schleife neu zusammengebaut werden, sonst läuft man hier in eine Endlosschleife.

$pattern = '=^(.*)<a(.*)href\="?(\S+)"([^>]*)>(.*)</a>(.*)$=msi';
while (preg_match($pattern, $zeile, $txt))
{
  /* $txt[3] enthält die gewünschte URL. */
  echo $txt[3]."\n";

  /* $zeile neu bauen */
  $zeile = $txt[1]." hier war mal ein Link ".$txt[6];
}

/* $zeile zur Kontrolle ausgeben */
print "<br>".nl2br($zeile);

$txt enthält als Array alle Tokens, die in der Regexp in Klammern angegeben sind. $txt[0]als Sonderstellung enthält den ganzen Text.

Valid HTML 4.01! Valid CSS!

8.8. Wie finde ich alle Links in einer HTML-Datei?
http://www.php-faq.de/q/q-regexp-links-finden.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team