我有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 找不到,然后才能收到找到文件的消息。
如果找不到文件,显示错误消息的正确方法是什么?
答案 0 :(得分:1)
我简化了你的代码。
首先,我将您目录中的所有文件都放到glob()
的数组中。然后,我只需抓取所有名称为$name
且preg_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>";
?>