检查目录中的多个文件并返回bool值

时间:2016-06-11 16:37:46

标签: php codeigniter

使用下面的代码检查单个文件有效..但我必须在循环中检查许多文件。我正在开发一个包含大量文件(大约1000个)的项目。文件名在前缀上有所不同,有些中断。这是一个使用CI框架的项目。

  

案例I:使用is_file()和file_exists()

<?php function custom_file_exists($filePath)
   {
         if((is_file($filePath))&&(file_exists($filePath))){
           return 'true';
         }
         return 'false';
   }
?>
  

案例二:使用glob()

<?php function custom_file_exists($filePath) {
    $files = glob('uploads/folder/*.pdf', GLOB_BRACE);
    if (in_array($filePath, $files)) {
        return 'true';
    } else {
        return 'false';
    }
}
?>

以下是我想要处理的代码部分。文件检查功能在传递单个filePath时有效,但在使用以下循环执行相同操作时失败。

<?php foreach($files as $file):
    //checking all files in loop
    $search = 'uploads/folder/'.$file->name;
    $result = custom_file_exists($search);
    echo $result;  //return 'false' even if the file is present

    //checking for single file
    $search1 = 'uploads/folder/filename';
    $result1 = custom_file_exists($search1);
    echo $result;  //return 'true' when file is present

    endforeach;?>

我无法弄清楚代码有什么问题。有人可以帮助我吗?任何想法都表示赞赏。谢谢你的帮助。

  

根据请求对glob函数进行转储。

<?php $allfiles = glob("uploads/folder/*.pdf");
print_r($allfiles);?>

结果是:

数组([0] =&gt; uploads / folder / file1.pdf [1] =&gt; uploads / folder / file2.pdf [2] =&gt; uploads / folder / file3.pdf [3] =&gt; uploads / folder / file4.pdf [4] =&gt; uploads / folder / file5.pdf [5] =&gt; uploads / folder / file6.pdf [6] =&gt; uploads / folder / file7.pdf [7] = &gt; uploads / folder / file8.pdf ......

  

对于我在循环中使用的$文件:print_r($ files)给出以下输出。

数组([0] =&gt; stdClass对象([id] =&gt; 1 [名称] =&gt; file1.pdf [描述] =&gt;这里的东西[published_date] =&gt; 2016 [发布] =&gt ; 1)

[1] =&gt; stdClass对象([id] =&gt; 2 [name] =&gt; file2.pdf [description] =&gt;这里的东西[published_date] =&gt; 2016 [publish] =&gt; 1)

[2] =&gt; stdClass对象([id] =&gt; 3 [name] =&gt; file3.pdf [description] =&gt;这里的东西[published_date] =&gt; 2016 [publish] =&gt; 1)

[3] =&gt; stdClass对象([id] =&gt; 4 [name] =&gt; file4.pdf [描述] =&gt;这里的东西[published_date] =&gt; 2016 [发布] =&gt; 1)......

0 个答案:

没有答案