PHP删除脚本无法运行


PHP delete script not functioning

我有一个脚本(从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

我没能让上面的脚本工作,但我设法找到了另一个适合我的脚本!只需输入相对路径即可!

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

希望它能帮助到别人!

砂光机

您不能使用url来删除文件,您应该提供一个取消链接的文件系统路径。(编辑:rmdir也是如此)