PHP奇怪的file_exists行为

时间:2017-12-06 11:18:20

标签: php

我在php中有这个for循环:

dateBlocks.Length = 2

我放入文件夹img只有1.jpg和3.jpg所以我只需要获得1.jpg和3.jpg文件存在,但我得到的所有文件不存在或一个文件存在和所有其他不存在...为什么这个函数没有正确返回结果?

2 个答案:

答案 0 :(得分:1)

请尝试以下代码:

$dirname = "./img/";
$images = glob($dirname."*.jpg");

它只会为您提供现有的.jpg文件

或者您可以在没有else条件的情况下使用自己的代码:

 for ($i=0; $i <= 10; $i++) {
            if (file_exists('./img/'.$i.'.jpg')){ 
            echo '<br/>FILE: '.$i.'.jpg EXISTS!'; 
           }
       } 

答案 1 :(得分:1)

我认为您对文件结构和相对路径

感到困惑

.//相同,在运行目录的脚本中获取相同的文件夹,如果要转到父目录,则需要添加../

我已经创建了相同的程序,它可以正常工作。

运行路径 / var / www / html / test 并检查文件夹 / var / www / html / test / img 并且工作正常

   for ($i=1; $i <= 10; $i++) {
    $selva = "./img/$i.jpg";
      if (file_exists($selva)) {
          echo 'FILE: '.$selva.' EXISTS!<br>';
      } else {
          echo 'FILE: '.$selva.' NOT EXISTS!<br>';
      }
   }

我认为你试图从运行dir的php访问外部目录,所以你需要使用../

否则,您只需提供绝对路径

即可

您可以使用dirname(__FILE__)

获取当前文件夹