The function here will take an HTML fragment and return an array of useful images it finds.
';
$text = $header . $text;
$dom = new DOMDocument();
if (@$dom->loadHTML($text)) {
$xpath = new DOMXpath($dom);
if ($images = $xpath->evaluate("//img")) {
$result = array();
foreach ($images as $i => $img) {
$ht = $img->getAttribute('height');
$wd = $img->getAttribute('width');
// if height & width are 1 its a bug, ignore
if (1 === (int)$ht && 1 === (int)$wd) {
continue;
}
// if it doesn't end in an image file extension
// then ignore
$src = $img->getAttribute('src');
if (!preg_match('/.(png|jpg|gif)$/i', $src)) {
continue;
}
// do we need to figure out the full url to the image?
if (!preg_match('/^https?:///', $src)) {
continue;
}
$alt = $img->getAttribute('alt');
$result[$i] = array('src' => $src, 'alt' => $alt, 'height' => $ht, 'width' => $wd);
}
if (!empty($result)) {
return $result;
}
}
}
return false;
}