我正在从某个文件夹中检索一组文件,我想检测每个文件是否名为index.html,index.htm,default.html,default.htm等。而不是一个笨拙的行说
if($file=='index.html || $file=='index.htm' || $file=='INDEX.HTML')
我宁愿使用正确的正则表达式来匹配大写/小写变体等。任何帮助都将非常感激。
答案 0 :(得分:6)
怎么样:
if (preg_match('/^(index|default)\.html?$/i', $file)) {
echo 'file matches';
}
答案 1 :(得分:5)
真的值得吗?对于处理代码的其他人来说,正则表达式更难以阅读,因此您最终会在评论中解释它,占用比原始解决方案更多的空间。
为什么不进行strtolower()
和正常比较,可以使用in_array()
缩写?
例如。
$names = array("index.htm", "index.html", "default.html", "default.htm");
if (in_array($file, $names))
// do stuff