0

我有一个脚本(从 StackOverflow 的某个地方得到它,学分不归我!)来删除一个文件夹及其内容。但是,它对我不起作用。删除文件夹后,我的数据库中的一条记录应该被删除,这很好。但是,该文件夹不会被删除,它的内容也不会被删除!这是我的代码:

<?php

$filepath = dirname(__FILE__);
$gemeented = preg_replace( '#^(.*)/(.*?)/(.*?)/(.*?)/(.*?)/(.*?)$#', "$2", $filepath );
$plaatsd = preg_replace( '#^(.*)/(.*?)/(.*?)/(.*?)/(.*?)/(.*?)$#', "$4", $filepath );
$hrubriekd = preg_replace( '#^(.*)/(.*?)/(.*?)/(.*?)/(.*?)/(.*?)$#', "$5", $filepath );
$bedrijfn = preg_replace( '#^(.*)/(.*?)/(.*?)/(.*?)/(.*?)/(.*?)$#', "$6", $filepath );

$filepath2 = "http://".$gemeented.".url.nl/".$plaatsd."/".$hrubriekd."/".$bedrijfn."/";
$filepath3 = "http://".$gemeented.".url.nl/".$plaatsd."/".$bedrijfn."/";

echo $filepath2;


function Delete($filepath2)
{
    if (is_dir($filepath2) === true)
    {
        $files = array_diff(scandir($filepath2), array('.', '..'));

        foreach ($files as $file)
        {
            Delete(realpath($filepath2) . '/' . $file);
        }

        return rmdir($filepath2);
    }

    else if (is_file($filepath2) === true)
    {
        return unlink($filepath2);
    }

    return false;
}


?>

为了确保我的 $filepath2 是正确的,我回应了它,结果是:

http://dongen.mydomain.nl/s-gravenmoer/aandrijvingenenbesturingen/bedrijfsnaam/

那正是我想要的文件夹,但是,它没有发生!文件夹有 CHMOD 755。

编辑:

仅使用 $filepath 也不起作用,回显给了我:

/vhosts/mydomain.nl/subdomains/dongen/httpdocs/s-gravenmoer/aandrijvingenenbesturingen/bedrijfsnaam
4

2 回答 2

1

我无法使上述脚本正常工作,但我设法找到了另一个适合我的脚本!只需输入相对路径即可!

$dirname = "../".$bedrijfn."/";
delete_directory($dirname);

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;
}

希望它可以帮助某人!

桑德

于 2012-09-05T14:12:11.543 回答
0

你不能使用 url 来删除文件,你应该给 unlink 一个文件系统路径。(编辑:rmdir 也是如此)

于 2012-09-05T13:24:23.330 回答