scandir() 显示文件 found/not 发现错误信息
scandir() display file found/not found error messge
我有 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 个文件具有该特定名称,我会将您目录中的所有文件放入一个数组 glob()
. Then I simply grab all files which have the name $name
with preg_grep()
and check with 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>";
?>
我有 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 个文件具有该特定名称,我会将您目录中的所有文件放入一个数组 glob()
. Then I simply grab all files which have the name $name
with preg_grep()
and check with 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>";
?>