我在一个 scandir() 的 foreach 循环中,其中目录文件是$files as $file
. 我试图通过使用针数组来简化我的 strripos 文件类型排除,而不是为每个文件类型传递几个 strripos 行。
这有效:
if ($code !== 'yes'){
$excluded = strripos($file, '.js')
|| strripos($file, '.pl')
|| strripos($file, '.py')
|| strripos($file, '.py')
|| strripos($file, '.rb')
|| strripos($file, '.css')
|| strripos($file, '.php')
|| etc.;
} else {
$excluded = '';
}
但这不会:
if ($code !== 'yes'){
$exclusions = array('.js, .pl, .py, .rb, .css, .php, etc.');
foreach($exclusions as $exclude){
$excluded = strripos($file, $exclude);
}
} else {
$excluded = '';
}
$code
是用户定义为“是”或其他任何内容 = 否的简码属性。
然后,当我到达输出时,我检查是否$excluded
已定义为“是”。就像我说的,它适用于第一个示例,但我无法让数组工作。重申一下,我已经$file
在scandir()
.
更新
尝试使用in_array
,但我可能做错了什么。我试过了:
$exclusions = array('.js', '.pl', '.py', '.rb', '.css', '.php', '.htm', '.cgi', '.asp', '.cfm', '.cpp', '.dat', '.yml', '.shtm', '.java', '.class');
$excluded = strripos($file, (in_array($exclusions)));
我试过了:
$excluded = strripos($file, (in_array('.js', '.pl', '.py', '.rb', '.css', '.php', '.htm', '.cgi', '.asp', '.cfm', '.cpp', '.dat', '.yml', '.shtm', '.java', '.class')));
不去。