PHP 检查文件是否不存在于任何目录中
PHP check if file not exists in any directory
如何检查一个文件是否不存在于任何目录中,添加到$notexists
数组中。
foreach($files as $file){
foreach ($folders as $this_folder) {
if (file_exists($this_folder.$file)) {
$exists[] =$file;
continue;
}else{
// What to do if file is not exist in any directory, add into array.
$notexists[] = '';
}
}
您需要等到循环结束才能知道是否在任何目录中都找不到该文件。
而continue;
应该是break;
。 continue
restarts 开始当前循环的下一次迭代,但是一旦找到文件就想完全退出循环。
foreach($files as $file){
$found = false;
foreach ($folders as $this_folder) {
if (file_exists($this_folder.$file)) {
$exists[] =$file;
$found = true;
break;
}
}
if (!$found) {
// What to do if file is not exist in any directory, add into array.
$notexists[] = $file;
}
}
您可以使用 array_diff()
检查未找到的文件:
foreach($files as $file){
foreach ($folders as $this_folder) {
if (file_exists($this_folder.$file)) {
$exists[] =$file;
break;
}
}
$notexists = array_diff($files, $exists);
您可以在 else
条件之后直接存储它们,因为您使用 break;
您不必担心迭代
foreach($files as $file){
foreach ($folders as $folder_path) {
/* NOTE : the '@' here before the file_exists() function
is to manage this function errors by yourself after the `else` condition ,
otherways you can remove it to see the native php errors .
*/
if (@file_exists($folder_path.$file)) {
$exists[] = $file;
break;
}else{
$notexists[] = $file;
}
}
}
结果:
Exist Files : Array ( [0] => index.php [1] => head.php )
Non Exist ones : Array ( [0] => random_file.random )
但请注意,您需要先定义这些数组,然后再在条件中使用它们,这样如果它们 return 是一个空数组,当您将它们作为结果循环时,您以后不会得到未定义的错误。
所以在你的第一个 foreach()
之前添加这些变量定义
$exists = array();
$notexists = array();
$folders = array('./'); // your folders list ofc should be here ..
如何检查一个文件是否不存在于任何目录中,添加到$notexists
数组中。
foreach($files as $file){
foreach ($folders as $this_folder) {
if (file_exists($this_folder.$file)) {
$exists[] =$file;
continue;
}else{
// What to do if file is not exist in any directory, add into array.
$notexists[] = '';
}
}
您需要等到循环结束才能知道是否在任何目录中都找不到该文件。
而continue;
应该是break;
。 continue
restarts 开始当前循环的下一次迭代,但是一旦找到文件就想完全退出循环。
foreach($files as $file){
$found = false;
foreach ($folders as $this_folder) {
if (file_exists($this_folder.$file)) {
$exists[] =$file;
$found = true;
break;
}
}
if (!$found) {
// What to do if file is not exist in any directory, add into array.
$notexists[] = $file;
}
}
您可以使用 array_diff()
检查未找到的文件:
foreach($files as $file){
foreach ($folders as $this_folder) {
if (file_exists($this_folder.$file)) {
$exists[] =$file;
break;
}
}
$notexists = array_diff($files, $exists);
您可以在 else
条件之后直接存储它们,因为您使用 break;
您不必担心迭代
foreach($files as $file){
foreach ($folders as $folder_path) {
/* NOTE : the '@' here before the file_exists() function
is to manage this function errors by yourself after the `else` condition ,
otherways you can remove it to see the native php errors .
*/
if (@file_exists($folder_path.$file)) {
$exists[] = $file;
break;
}else{
$notexists[] = $file;
}
}
}
结果:
Exist Files :
Array ( [0] => index.php [1] => head.php )
Non Exist ones :Array ( [0] => random_file.random )
但请注意,您需要先定义这些数组,然后再在条件中使用它们,这样如果它们 return 是一个空数组,当您将它们作为结果循环时,您以后不会得到未定义的错误。
所以在你的第一个 foreach()
之前添加这些变量定义
$exists = array();
$notexists = array();
$folders = array('./'); // your folders list ofc should be here ..