【发布时间】:2008-11-26 15:43:39
【问题描述】:
我正在读取单个目录中的所有文件,我想过滤 JPG、JPEG、GIF 和 PNG。
大写和小写字母。这些是唯一被接受的文件。
我目前正在使用这个:
$testPics = takeFiles($picsDir, "([^\s]+(?=\.(jpg|JPG|jpeg|JPEG|png|PNG|gif|GIF))\.\2)");
而函数 takeFiles 看起来像这样:
function takerFiles($dir, $rex="") {
$dir .= "/";
$files = array();
$dp = opendir($dir);
while ($file = readdir($dp)) {
if ($file == '.') continue;
if ($file == '..') continue;
if (is_dir($file)) continue;
if ($rex!="" && !preg_match($rex, $file)) continue;
$files[] = $file;
}
closedir($dp);
return $files;
}
而且它总是什么也不返回。所以我的正则表达式代码一定有问题。
【问题讨论】: