我碰到有關性能和READDIR 幾篇文章,這裏是一個PHP腳本:PHP遞歸文件夾READDIR VS發現性能
function getDirectory($path = '.', $level = 0) {
$ignore = array('cgi-bin', '.', '..');
$dh = @opendir($path);
while(false !== ($file = readdir($dh))){
if(!in_array($file, $ignore)){
$spaces = str_repeat(' ', ($level * 4));
if(is_dir("$path/$file")){
echo "$spaces $file\n";
getDirectory("$path/$file", ($level+1));
} else {
echo "$spaces $file\n";
}
}
}
closedir($dh);
}
getDirectory(".");
這個正確呼應文件/文件夾。
現在我發現了這一點:
$t = system('find');
print_r($t);
這也找到所有文件夾和文件,然後我可以創建一個像第一個代碼的數組。
我認爲system('find');
比readdir
快,但我想知道這是否是一種好的做法? 非常感謝你
系統調用肯定是不可移植的。您的示例代碼依賴於* nix OS。 – nickb
我有centos 5與Apache和PHP + MySQL是好的? – rcs20
習慣使用'system()'調用也是一個壞主意。它們應該沒有參數就沒問題,但如果你根據用戶輸入動態構建它們,你很可能會造成不好的安全漏洞。 – millimoose