• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Bildadresse aus img-Tag extrahieren

  • Ersteller Ersteller Sempervivum
  • Erstellt am Erstellt am
S

Sempervivum

Guest
Hallo,
wie kann ich am einfachsten die Bildadresse aus einem img-Tag (src-Attribut) extrahieren? img-Tag befindet sich in einer Zeile, nur ein img-Tag pro Zeile, nur jpg.
 
Versuch es mal mit preg_match oder preg_match_all

PHP:
preg_match("/src=\"(.*?)\"/", $input_line, $output_array);
 
Danke für den Hinweis. Ich hatte mich geirrt, es können doch mehrere Tags in einer Zeile sein. Sollte aber mit preg_match_all() kein Problem sein. Dies ist mein Versuch:
PHP:
$ret = preg_match_all('/<img src="([a-zA-Z0-9_]*.jpg)\"/', $line, $matches);
if ($ret == 1) {
var_dump($matches);
for ($imatches = 1; $imatches < count($matches); $imatches++) echo $matches[$imatches][0];
}
Eigentlich viel versprechend, funktioniert aber nur, wenn nur ein img-Tag in der Zeile ist. Was mache ich falsch?
 
Zuletzt bearbeitet von einem Moderator:
Fehler gefunden: Der Return-Wert gibt die Anzahl der Übereinstimmungen an. So funktioniert es:
PHP:
if ($ret > 0)
 
Welche Sinn sollte es haben, das DOM serverseitig zu parsen, anstatt notwendige Operationen durchzuführen, bevor das DOM aufgebaut wird?

Das extrahieren des Dateinamens ist gar nicht notwendig. Im einfachsten Fall lassen sich Infos, wie bsw. der Name eines Austauschbilds, mittels Data-Attribut per HTML transportieren und clientseitig zuweisen.
 
Hallo nookie,
danke für den Hinweis. Ich hatte schon davon gehört, dass man das HTML auch in eine Struktur einlesen kann. Aber auch, dass es nur geht, wenn es valide ist. Und da bin ich mir bei meinen Dateien nicht so sicher. Weil es doch einige sind, wäre der Aufwand, es zu richten, wahrscheinlich eher groß. Über die Gefahren bin ich mir auch bewusst, aber das HTML ist maschinell erstellt und sollte immer das selbe Schema haben.
Hallo Tronjer,
der Grund dafür ist dieses Problem:
https://www.html.de/threads/responsives-css-funktioniert-nicht-unter-android.54651/
Setzen der Attribute mit JS funktioniert nicht, inline Notation des CSS jedoch schon. Wenn jemanc ein Lösung für dieses Problem hätte, würde ich es begrüßen. Weil ich ohnehin eine PHP-Datei für das Einlesen habe, wollte ich den Code umeditieren. Ich hätte es auch offline mit AWK machen können, aber ich wollte es diesmal mit PHP probieren.
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben