当前位置:  开发笔记 > 编程语言 > 正文

一段PHP代码我不太确定

如何解决《一段PHP代码我不太确定》经验,为你挑选了1个好方法。

我这里有一段PHP代码,删除目录及其中的所有文件(如果存在).但是,我不太确定它,它在我看来它会删除所有的子地图,然后在那些文件等等...

我基本上想要给出和可选的true/false参数来选择是否删除子目录.或者更好的做法是制作2个功能?第一个完全清空文件夹和秒删除文件夹及其中的所有内容.

这是代码:

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) or die("Could not remove directory.");
   return true;
 }

而我基本上想知道的是:这里可能出现什么问题?是否存在这段代码严重搞砸的情况?我已经用Netbeans对它进行了几个小时的调试,并尝试了很多不同的场景.现在我有点困惑,想知道StackoverFlow的人是否可以在代码中找到一个缺陷?



1> troelskn..:

而我基本上想知道的是:这里可能出现什么问题?是否存在这段代码严重搞砸的情况?

如果dir包含一个符号链接到其他地方,它会被跟踪(除非我弄错了 - 你应该检查一下).这可能导致野火,你基本上消灭了整个文件系统.您可能希望使用以防止这种情况realpath

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有