My function uses file_get_contents and I'm using it to get image src URLs from web pages and then print those images onto a different php/html page. But sometimes images are rendering correctly and sometimes not. Here is my code:
//function to get the contents from a URL
function getSiteOG( $functionurl, $specificTags=0 ){
$doc = new DOMDocument();
@$doc->loadHTML(file_get_contents($functionurl));
$res['title'] = $doc->getElementsByTagName('title')->item(0)->nodeValue;
foreach ($doc->getElementsByTagName('meta') as $m){
$tag = $m->getAttribute('name') ?: $m->getAttribute('property');
if(in_array($tag,['description','keywords']) || strpos($tag,'og:')===0) $res[str_replace('og:','',$tag)] = $m->getAttribute('content');
}
return $specificTags? array_intersect_key( $res, array_flip($specificTags) ) : $res;
}
//use function on a variety of URLs passed through $url_db variable
$og_details = getSiteOG($url_db);
//echo image onto page
echo "<img class='preview_image_file image-fit-img' src='".@$og_details['image']."' alt='Preview image'>";
Sometimes when I pass a URL through the $url_db variable and echo the image onto another page (as shown in the last line of code above), it works fine and displays the image, but sometimes it results in a "broken image" icon
Example URL where is renders the image correctly: https://simplifaster.com/
Example URL where it shows a broken image: https://store.simplifaster.com/