我使用的是一个在jquery幻灯片中显示图像的简单脚本 - 这些图像文件名列在.txt文件中,并根据您所在的页面进行更改(我还在其他脚本中使用分页)。
如果.txt文件中列出的文件名不存在,我希望显示图像'unavailable.jpg'而不是......
原始剧本:
<?php
echo"
<div id='slider-wrapper'><div id='slider' class='nivoSlider'>";
$photos=file("photos.txt");
foreach($photos as $image){
$item=explode("|",$image);
if($item[0]==$fields[0]){
$photo=trim($item[1]);
echo"<img src='images/work/$photo' alt='' />\n";
}
}
echo"
</div>
</div>
"?>
这是我的尝试...但它无法正常工作 - 而不是显示'unavailable.jpg'图像,它显示目录中的所有图像......:S任何人都有我可能做错了什么的想法? :S
<?php
echo"
<div id='slider-wrapper'><div id='slider' class='nivoSlider'>";
$photos=file("photos.txt");
foreach($photos as $image){
$item=explode("|",$image);
$photo=trim($item[1]);
if (file_exists("images/work/".$photo)) {
echo"<img src='images/work/$photo' alt='' />\n";
}
else{
echo"<img src='images/work/unavailable.jpg' alt='' />\n";
}
}
echo"
</div>
</div>
"?>
我只希望显示该页面的图像,而不是显示所有图像。以下是我的文本文件示例:
1|image1.jpg
1|image2.jpg
1|image3.jpg
2|image1.jpg
2|image2.jpg
1和2用于第1页和第2页,它们显示列出的图像。这一切在我发布的上述原始脚本中都可以正常工作,但是当我添加if file_exists时它似乎会中断。
答案 0 :(得分:1)
图像的路径使用相对路径。您确定当前的工作目录是您认为的目录吗?
验证执行echo 'Current Working Directory: '.getcwd()."<br />\n"
并验证您所在的目录。
最好使用图像目录的完整文件路径,以便脚本可以放在服务器的任何位置。
现在,如果这是正确的,那么您需要检查您的脚本是否具有图像目录的权限。通常,php运行为nobody:nobody
或apache:apache
,具体取决于您的配置。
上面的目录以及文件应该有644
(-rw-r - r--)或至少444
权限(-r - r - r-- )。
尝试这两件事,让我们知道是否能解决您的具体问题;我希望如此。
答案 1 :(得分:0)
您需要为$ item [0] == $ fields [0]:
重新添加测试<?php
echo "<div id='slider-wrapper'><div id='slider' class='nivoSlider'>";
$photos = file("photos.txt");
foreach ($photos as $image) {
$item = explode("|",$image);
$photo = trim($item[1]);
if (file_exists("images/work/".$photo)
&& $item[0] == $fields[0]
) {
echo "<img src='images/work/$photo' alt='' />\n";
} else {
echo "<img src='images/work/unavailable.jpg' alt='' />\n";
}
}
echo "</div></div>";
?>
编辑: 我只是注意到Ott在评论中已经指出了这一点。你还在使用unavailable.jpg吗?