php - 忽略目录中缺少的文件

时间:2016-02-27 05:05:04

标签: php html

我用html调用php脚本来随机显示目录中的图像。我想通过img50.jpg将img1.jpg添加到php文件中,即使其中一些文件还不存在,以便客户端可以在闲暇时将图像添加到目录中。 目前,如果其中一个文件不存在,则仍会调用该图像并显示为丢失的文件。

如何检查文件是否存在,如果文件丢失则忽略它?

这是当前的PHP代码:

    <?php 

// rotate images randomly but w/o dups on same page - format: 

// <img src='rotate.php?i=0'> - rotate image #0 - use 'i=1' 

// for second, etc 

// (c) 2004 David Pankhurst - use freely, but please leave in my credit 

$images=array( // list of files to rotate - add as needed 

  "img1.gif", 

  "img2.gif", 

  "img3.gif", 

  "img4.gif", 

  "img5.gif" ); 

$total=count($images); 

$secondsFixed=10; // seconds to keep list the same 

$seedValue=(int)(time()/$secondsFixed); 

srand($seedValue); 

for ($i=0;$i<$total;++$i) // shuffle list 'randomly' 

{ 

  $r=rand(0,$total-1); 

  $temp =$images[$i]; 

  $images[$i]=$images[$r]; 

  $images[$r]=$temp; 

} 

$index=(int)($_GET['i']); // image index passed in 

$i=$index%$total; // make sure index always in bounds 

$file=$images[$i]; 

header("Location: $file"); // and pass file reference back 

?>

2 个答案:

答案 0 :(得分:0)

加载所有图像后,您可以使用下面的jQuery代码隐藏那些未加载或无法加载的图像

$("img").error(function () { 
    $(this).hide();   
});

答案 1 :(得分:0)

在解析你的那个数组时,使用此函数检查图像是否存在。

PS:你需要定义图像的路径。

if (is_array(getimagesize($absolute_image)))
    return true; // image exist
else
    return false;