PHP file_exists()一次检查多个文件

时间:2017-02-08 16:28:38

标签: php file-exists

我想一次检查多个文件是否存在。如果存在任何这些文件,我想显示文本:

$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';
}

我做错了什么不能正常工作?

3 个答案:

答案 0 :(得分:3)

将您的文件名放在一个数组中并循环遍历:

com.yelp.clientlib.exception.exceptions.InvalidSignature

答案 1 :(得分:1)

我会使用一个数组,过滤它并检查它是否为空:

$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等。或者计数是否等于原始数组的计数。

答案 2 :(得分:0)

您需要重新安排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';
}

仅当您不想使用数组和循环时。