为什么这个功能不起作用?PHP
这是原来的功能,这是完美的作品为什么这个功能不起作用?PHP,php,function,curly-braces,Php,Function,Curly Braces,这是原来的功能,这是完美的作品 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 != "..
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;
}
我试着做一个有花括号和不同名字的版本,但它不起作用,我不确定问题出在哪里
function borrar_directorio ($carpeta) {
if (is_dir($carpeta)) {
$abrir_directorio = opendir($carpeta);
if (!$abrir_directorio) {
return false;
}
}
while ($archivo = readdir($abrir_directorio)) {
if ($archivo != "." && $archivo != "..") {
if (!is_dir($carpeta."/".$archivo)) {
unlink($carpeta."/".$achivo);
} else {
borrar_directorio($carpeta.'/'.$archivo);
}
}
}
closedir($abrir_directorio);
rmdir($carpeta);
return true;
}
我错过了什么?我希望您能帮助我,提前谢谢在您如何编写它的过程中,一个可能的问题是,如果文件夹不存在或由于权限限制或文件系统错误而无法打开,while循环仍将运行 下面是如何使用大括号编写原始脚本
if(is_dir($carpeta))
{
$abrir_directorio = opendir($carpeta);
}
if(!$abrir_directorio)
{
return false;
}
while($archivo = readdir($abrir_directorio))
{ ...
在编写过程中可能存在的一个问题是,如果文件夹不存在,或者由于权限限制或文件系统错误而无法打开,那么while循环仍将运行 下面是如何使用大括号编写原始脚本
if(is_dir($carpeta))
{
$abrir_directorio = opendir($carpeta);
}
if(!$abrir_directorio)
{
return false;
}
while($archivo = readdir($abrir_directorio))
{ ...
或许scandir会有所帮助:
public static function delTree($dir) {
$files = array_diff(scandir($dir), array('.','..'));
foreach ($files as $file) {
// echo "$dir/$file \n";
is_dir("$dir/$file"))
? delTree("$dir/$file")
: unlink("$dir/$file");
}
return rmdir($dir);
}
如果此功能不起作用,请取消对echo的注释,您将看到它试图删除哪些文件。也许scandir会有帮助:
public static function delTree($dir) {
$files = array_diff(scandir($dir), array('.','..'));
foreach ($files as $file) {
// echo "$dir/$file \n";
is_dir("$dir/$file"))
? delTree("$dir/$file")
: unlink("$dir/$file");
}
return rmdir($dir);
}
如果此函数不起作用,请取消对echo的注释,您将看到它试图删除哪些文件。有错误吗?您的错误日志中有什么?@JayBlanchard“为什么此函数不起作用?”我应该再花一个标志吗?还是保持原样D@JayBlanchard没有错误,只是没有删除目录及其files@HendraNucleo不,请:),我真的需要帮助,那肯定有错误。代码没有错误就不能“不工作”。你知道你的错误日志在哪里吗?有错误吗?您的错误日志中有什么?@JayBlanchard“为什么此函数不起作用?”我应该再花一个标志吗?还是保持原样D@JayBlanchard没有错误,只是没有删除目录及其files@HendraNucleo不,请:),我真的需要帮助,那肯定有错误。代码没有错误就不能“不工作”。你知道你的错误日志在哪里吗?谢谢你的回答,我把代码改成这种方式,但我的问题仍然是打字错误:)谢谢你的回答,我把代码改成这种方式,但我的问题仍然是打字错误:)谢谢你的回答,我解决了我的问题,但我会试试你的代码:)谢谢你的回答,我解决了我的问题,但我将尝试您的代码:)