您是否尝试过转义所有特殊字符?
前任。
$dir = "dir_123[test@test.de]";
$from = array('[',']');
$to = array('\[','\]');
$anz = count(glob(str_replace($from,$to,$dir . "\\*.tif")));
这适用于我在 Ubuntu 上。
如果这不起作用,您可以执行以下操作:
function countTif($dir) {
$ret = 0;
$scan = scandir($dir);
foreach($scan as $cur) {
$ret += ((substr($cur,-4) == ".tif")?1:0);
}
return $ret;
}
如果您需要递归计数:
function countTif($dir) {
$ret = 0;
$scan = scandir($dir);
foreach($scan as $cur) {
if(is_dir("$dir/$cur") and !in_array($cur,array('.','..'))) {
$ret += countTif("$dir/$cur");
} else {
$ret += ((substr($cur,-4) == ".tif")?1:0);
}
}
return $ret;
}
此功能已在我的 Ubuntu 9.04 计算机上使用 php 5.2.6-3ubuntu4.1 进行了测试和工作
希望它对你有用!
//Linus Unnebäck