Favicon mittels preg_match auslesen

nCL

Grünschnabel
Hallo,

ich möchte gerne aus einer HTML-Seite das Favicon auslesen. Bisher versuche ich das so:

Code:
preg_match('/(<link href="(.*)".*rel="shortcut icon".*\/?>|<link rel="shortcut icon".*href="(.*)".*\/?>)/U', $html, $matches);

Allerdings funktioniert dies nur manchmal! Anscheinend habe ich da nen Fehler im regulären Ausdruck den ich aber nicht finde...

Könnt ihr mir da evtl. helfen?

Vielen Dank im Vorraus für eure Hilfe
 
Naja habs jetzt nochmal getestet. Er findet auch immer mehrere Ergebnisse und nicht nur die URL des Favicons...

Der Ausdruck hat eindeutig irgendwo nen Fehler ...
 
Ich würde dass auf 2 reguläre Ausdrücke aufteilen: Der erste prüft, ob es sich um ein favicon handelt, der zweite liest, wenn der erste trifft, das favicon aus:
PHP:
$pattern1 = '/<link .*rel=("|\')shortcut icon\1.*>/Ui';

if( preg_match($pattern1, $str, $match1)  ){
  $pattern2 = '/href=("|\')(.*)\1/Ui';
  preg_match($pattern2, $match1[0], $match2);
  echo 'Favicon: '.$match[2];
}
 
Ah tut mir leid! Funktioniert doch! Hatte die Modifier nicht drin! Vielen Dank für deine Hilfe! Super Forum hier!
 
Zurück