Bei der Entwicklung eines WordPress-PlugIns zum Bild-Import von Pinterest-Walls brauchte ich eine Funktion, um aus HTML-Code die Image-Tags zu extrahieren. Dabei habe ich mich aber unnötig schwer getan – dennoch führen sehr viele Wege nach Rom.
Regulärer Ausdruck
$foo = '<img class="lots of different classes" title="sample image" src="https://mkleine.de/img/sample.jpg" alt="sample image" width="200" height="300" />'; $array = array(); preg_match( '/src="([^"]*)"/i', $foo, $array ) ; print_r( $array[1] ) ;
PHP-Klasse DOMDocument
$doc = new DOMDocument(); $doc->loadHTML('<img class="lots of different classes" title="sample image" src="https://mkleine.de/img/sample.jpg" alt="sample image" width="200" height="300">'); $imageTags = $doc->getElementsByTagName('img'); $srcAttribute = $doc->getElementsByTagName('img')->item(0)->getAttribute('src');
Ich habe mich für den zweiten Weg entschieden – welcher Weg performanter ist kann ich an dieser Stelle nicht sagen – jedenfalls funktionieren beide Lösungen.
Referenzen: