how can i know if a photo is available or not before puting it?

i have 30 photo links that some of them dont work the photo is not there so when i try to see it like this

  <img src="<?php echo $photo[$p];?>"/></br>
i get a x on the photo like its unavailable

so how can i know that its unavailable before and not showing it?
mgtm3Asked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
glcumminsConnect With a Mentor Commented:
You can use get_headers() to determine if a URL returns a valid response before using it:

<?php
 
list($response_code) = get_headers($photo[$p]);
 
if (stristr($response_code, '200 OK'))
{
   // The photo exists
   echo $photo[$p];
}
else
{
   // Take whatever action is necessary, like outputting a placeholder image URL.
}
?>

Open in new window

0
 
mgtm3Author Commented:
is there any faster code?
0
 
Roger BaklundConnect With a Mentor Commented:
If the images are on the local server, you can use file_exists().

You can use a placeholder image, like glcummins suggests, or remove the image completely, i.e. only display the image element if the image actually exists:
<?php if(file_exists($photo[$p]))
  echo '<img src="'.$photo[$p].'"/></br>';
?>

Open in new window

0
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

 
mgtm3Author Commented:
but the image is not on the sever and the command that glucummis takes for ever
0
 
Roger BaklundCommented:
It's probably the network and/or the remote server that is slowing you down. There is no way around this. Some packets have to travel across the network to determine if the file exists, and the remote server will use some time to respond. You should of course remove links to non-existing photos from your page, that would solve the problem.
0
 
mgtm3Author Commented:
how can i remove the links? you mean not showing the image
0
 
Roger BaklundCommented:
With links I meant "photo links" or image URLs. How did they get into $photo[$p] ? They are probably read from some database table? You should delete or otherwise 'block' these records from that table.
0
 
glcumminsCommented:
I run a large server with many millions of image references to other servers. I run a process in the background that periodically checks for the existence of those images, and updated a database record if they do not exist.

When the customer loads the website, my front-end scripts instantly know if the remote image is available, and do not need to run the slow get_headers() command in real-time.

Perhaps a similar system will work for you?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.