我正在运行一个循环来删除旧的成员文件,但我在下面收到以下错误,我想知道如何更正它以便我可以删除多个成员文件?
Fatal error: Cannot redeclare delete_directory() previously declared on line 4
这是PHP代码。
for($x = 0; $x < count($delete_member); $x++){
//delete members files and folders from the server
$dirname = './members/' . $delete_member[$x] . '/';
function delete_directory($dirname) {
if (is_dir($dirname)) {
$dir_handle = opendir($dirname);
}
if (!$dir_handle) {
return false;
}
while($file = readdir($dir_handle)) {
if ($file != "." && $file != "..") {
if (!is_dir($dirname."/".$file)) {
unlink($dirname."/".$file);
} else {
delete_directory($dirname.'/'.$file);
}
}
}
closedir($dir_handle);
rmdir($dirname);
return true;
}
delete_directory($dirname);
}
答案 0 :(得分:5)
将delete_directory
函数的定义排除在循环之外。您只需要定义一次就可以根据需要多次调用它。
根据您的评论判断,您不熟悉基本的PHP语法,因此我将在下面显示更正:
function delete_directory($dirname) {
if (is_dir($dirname)) {
$dir_handle = opendir($dirname);
}
if (!$dir_handle) {
return false;
}
while($file = readdir($dir_handle)) {
if ($file != "." && $file != "..") {
if (!is_dir($dirname."/".$file)) {
unlink($dirname."/".$file);
} else {
delete_directory($dirname.'/'.$file);
}
}
}
closedir($dir_handle);
rmdir($dirname);
return true;
}
for($x = 0; $x < count($delete_member); $x++){
//delete members files and folders from the server
$dirname = './members/' . $delete_member[$x] . '/';
delete_directory($dirname);
}
我建议购买介绍性的PHP书并阅读一下