我有一个PHP函数,我用来计算目录中的文件。
function getFileCount($path) {
$size = 0;
$ignore = array('.','..','cgi-bin','.DS_Store');
$files = scandir($path);
foreach($files as $t) {
if(in_array($t, $ignore)) continue;
if (is_dir(rtrim($path, '/') . '/' . $t)) {
$size += getFileCount(rtrim($path, '/') . '/' . $t);
} else {
$size++;
}
}
return $size;
}
这是正常的,但我需要在返回之前将$ size除以2.
如果我做'返回$ size / 2;'然后60变为22.5。 72变为19.125。这对我来说没有意义。我也试过intdiv(),尝试乘以0.5等等,我得到了不同的结果,但没有一个是正确的。
我知道这可能是非常基本的东西。
如果我在函数之外进行除法,它可以正常工作,但我想在返回整数之前处理它。
答案 0 :(得分:0)
你能创建一个包装函数吗?
function getFileCountDivided($path) {
return getFileCount($path) / 2;
}
答案 1 :(得分:0)
这可能是因为递归,子目录计数除以2将再次作为上部目录计数的一部分进行划分。 您可以将此函数包装在另一个函数中,该函数将最终计数除以一次并返回。在这种情况下,跟踪目录深度对我来说似乎太过分了,尽管这也是一个选项。