scandir()显示文件找到/未找到错误消息

时间:2015-08-17 15:48:19

标签: php file glob scandir

我有100个文件,我正在扫描它们并从中挑选出正确的文件。

我使用以下代码:

 $dir    = 'myDir';
 $files1 = scandir($dir);

 $scanned_directory = array_diff($files1, array('..', '.'));


 foreach ($scanned_directory as $key => $value) {
    $onlyname=explode(".", $value);
    if($onlyname[0]== $name){
        // echo "file found";
        break;
    }else{
        //echo "<h2>Not Found. Please Try Later</h2>";
    }

 }

问题在于,如果文件是第10个文件,我得到9x 找不到,然后才能收到找到文件的消息。

如果找不到文件,显示错误消息的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

我简化了你的代码。

首先,我将您目录中的所有文件都放到glob()的数组中。然后,我只需抓取所有名称为$namepreg_grep()的文件,并检查count()是否至少有一个具有该特定名称的文件。

<?php

    $dir = "myDir";
    $files = glob($dir . "/*.*");

    if(count(preg_grep("/^$name\..*$/", array_map("basename", $files))) > 0)
        echo "file found";
    else
        echo "<h2>Not Found. Please Try Later</h2>";

?>