PHP file_exists() 一次检查多个文件
PHP file_exists() to check multiple files at once
我想一次检查多个文件是否存在。如果这些文件中的任何一个存在,我想显示一个文本:
$filepre = ''.$br.'/filethumb/'.$name.'.jpg';
$filess = ''.$br.'/ss/'.$name.'.jpg';
$filess1 = ''.$br.'/ss/'.$name.'1.jpg';
$filess2 = ''.$br.'/ss/'.$name.'2.jpg';
$filess3 = ''.$br.'/ss/'.$name.'3.jpg';
$filess4 = ''.$br.'/ss/'.$name.'4.jpg';
$filess5 = ''.$br.'/ss/'.$name.'5.jpg';
$filess6 = ''.$br.'/ss/'.$name.'6.jpg';
$filess7 = ''.$br.'/ss/'.$name.'7.jpg';
$filess8 = ''.$br.'/ss/'.$name.'8.jpg';
$filess9 = ''.$br.'/ss/'.$name.'9.jpg';
然后我想检查这些文件是否存在。如果这 10 个文件中有 1 个存在,则显示文本 "Screenshots:"
。如果不存在文件,则不会显示任何内容。
我试过了:
if (file_exists($filess or $filess1 or $filess2 or $filess3 or $filess4 or $filess5 or $filess6 or $filess7 or $filess8 or $filess9)){
echo 'Screenshots';
}
我是不是做错了什么导致它不起作用?
将你的文件名放入一个数组中并循环:
$files = array('file_name_1', 'file_name_2'...);
foreach($files as $file){
if(file_exists($file)){
echo "screenshots";
break;
}
}
我会使用一个数组,过滤它并检查它是否为空:
$files[] = $br.'/ss/'.$name.'1.jpg';
$files[] = $br.'/ss/'.$name.'2.jpg';
//etc...
if(array_filter($files, 'file_exists')) {
echo "Screenshots:";
}
这是可扩展的,因为您可以比较结果的 count()
以查看 2、3、4 等是否存在,或者计数是否等于原始数组的计数。
您需要重新安排 if
条件下的检查,
if (file_exists($filess) or file_exists($filess1) or file_exists($filess2) or file_exists($filess3) or file_exists($filess4) or file_exists($filess5) or file_exists($filess6) or file_exists($filess7) or file_exists($filess8) or file_exists($filess9)){
echo 'Screenshots';
}
仅当您不想使用数组和循环时。
我想一次检查多个文件是否存在。如果这些文件中的任何一个存在,我想显示一个文本:
$filepre = ''.$br.'/filethumb/'.$name.'.jpg';
$filess = ''.$br.'/ss/'.$name.'.jpg';
$filess1 = ''.$br.'/ss/'.$name.'1.jpg';
$filess2 = ''.$br.'/ss/'.$name.'2.jpg';
$filess3 = ''.$br.'/ss/'.$name.'3.jpg';
$filess4 = ''.$br.'/ss/'.$name.'4.jpg';
$filess5 = ''.$br.'/ss/'.$name.'5.jpg';
$filess6 = ''.$br.'/ss/'.$name.'6.jpg';
$filess7 = ''.$br.'/ss/'.$name.'7.jpg';
$filess8 = ''.$br.'/ss/'.$name.'8.jpg';
$filess9 = ''.$br.'/ss/'.$name.'9.jpg';
然后我想检查这些文件是否存在。如果这 10 个文件中有 1 个存在,则显示文本 "Screenshots:"
。如果不存在文件,则不会显示任何内容。
我试过了:
if (file_exists($filess or $filess1 or $filess2 or $filess3 or $filess4 or $filess5 or $filess6 or $filess7 or $filess8 or $filess9)){
echo 'Screenshots';
}
我是不是做错了什么导致它不起作用?
将你的文件名放入一个数组中并循环:
$files = array('file_name_1', 'file_name_2'...);
foreach($files as $file){
if(file_exists($file)){
echo "screenshots";
break;
}
}
我会使用一个数组,过滤它并检查它是否为空:
$files[] = $br.'/ss/'.$name.'1.jpg';
$files[] = $br.'/ss/'.$name.'2.jpg';
//etc...
if(array_filter($files, 'file_exists')) {
echo "Screenshots:";
}
这是可扩展的,因为您可以比较结果的 count()
以查看 2、3、4 等是否存在,或者计数是否等于原始数组的计数。
您需要重新安排 if
条件下的检查,
if (file_exists($filess) or file_exists($filess1) or file_exists($filess2) or file_exists($filess3) or file_exists($filess4) or file_exists($filess5) or file_exists($filess6) or file_exists($filess7) or file_exists($filess8) or file_exists($filess9)){
echo 'Screenshots';
}
仅当您不想使用数组和循环时。