php
  • slider
  • echo
  • nivo-slider
  • 2011-11-04 54 views 2 likes 
    2

    我使用的jQuery的幻灯片显示图像的简单的脚本 - 这些图像文件名中的.txt文件中列出,并根据你在页面上的变化(IM也使用分页在另一脚本)。PHP文件是否存在不能正常工作

    如果在.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时它似乎中断。

    +2

    你是什么意思,它显示目录中的所有图像?如果你构成一个不存在的文件名,那么图像显示的是什么? – Ord

    +1

    如果文件存在,是不是应该显示? – xdazz

    +0

    另外,'$ image'的格式是什么?为什么你需要爆炸,只选择一个项目,并修剪? – Ord

    回答

    1

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

    要验证做一个echo 'Current Working Directory: '.getcwd()."<br />\n"并验证你在哪个目录。

    所以最好使用完整的文件路径,图像目录,使脚本可以放在任何地方你的服务器上。

    现在,如果这是正确的,那么你需要检查你的脚本是否有权限你的图像目录。通常,php根据您的配置运行为nobody:nobodyapache:apache

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

    尝试这两样东西,让我们知道这是否解决您的具体问题或没有;我希望它。

    +0

    谢谢!所有的图像都能正确显示,包括不可用的图片,但它们都是一次列出的。因此,而不是页面1只显示2个图像,目录中的所有图像将显示在幻灯片中,包括unavailable.jpg文件。希望我有道理 – Jess

    0

    您需要为$项目重新添加测试[0] == $域[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>"; 
    ?> 
    

    编辑: 我只注意到奥特在评论中已经指出了这一点。你还在使用unavailable.jpg的问题吗?

    相关问题