2

我正在使用一个在 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 时它似乎中断了。

4

2 回答 2

1

图像的路径使用相对路径。您确定当前工作目录是您认为的目录吗?

要验证echo 'Current Working Directory: '.getcwd()."<br />\n"并验证您所在的目录。

最好使用图像目录的完整文件路径,以便可以将脚本放置在服务器上的任何位置。

现在,如果这是正确的,那么您需要检查您的脚本是否有权访问您的图像目录。通常 php 作为nobody:nobodyapache:apache取决于您的配置运行。

上面的目录以及文件应该具有644(-rw-r--r--) 或最低444权限 (-r--r--r--)。

试试这两件事,让我们知道这是否解决了您的具体问题;我希望确实如此。

于 2011-11-04T02:48:28.037 回答
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>";
?>

编辑:我刚刚注意到奥特已经在评论中指出了这一点。您仍然遇到不可用.jpg 的问题吗?

于 2011-11-04T05:45:59.730 回答