PHP的unlink函数是否支持路径删除?

11

我想在PHP中从文件夹中删除一个文件,但我只有这个文件的路径,将路径提供给unlink函数是否可行?例如:

unlink('path/to/file.txt');
如果这不起作用,唯一的方法是在 path/to/ 目录中创建一个 .php 文件,并以某种方式将其包含到我的文件中,并在那里调用一个方法来删除该文件,对吗?
9个回答

22

有一个简单的方法可以回答您的问题

使用这段代码从文件夹中删除文件

$_SERVER['DOCUMENT_ROOT']

这可以在unlink函数内使用。

代码已经运行成功

     unlink($_SERVER['DOCUMENT_ROOT'] . "/path/to/file.txt");

7
请查看unlink文档:
bool unlink ( string $filename [, resource $context ] )

并且

filename
文件路径。

因此,它仅接受文件名的字符串作为参数。

确保文件可以通过执行脚本的位置的路径访问。绝对路径不会有问题,但是相对路径可能会出现问题。


5

unlink函数可以很好地处理路径。

Description bool unlink ( string $filename [, resource $context ] )

Deletes filename. Similar to the Unix C unlink() function. A E_WARNING level error will be generated on failure.

filename

Path to the file.

如果您遇到权限被拒绝的问题,则有时是因为您尝试删除位于目录层次结构较高的文件夹中的文件(即尝试删除以“../”开头的路径)。

因此,为了解决这个问题,您可以使用chdir()将工作目录更改为所需删除的文件所在的文件夹。

<?php
    $old = getcwd(); // Save the current directory
    chdir($path_to_file);
    unlink($filename);
    chdir($old); // Restore the old working directory   
?>

3

不要忘记检查文件是否存在,否则如果文件不存在就会出错:

$file_with_path = $_SERVER['DOCUMENT_ROOT'] . "/path/to/file.txt";
if (file_exists($file_with_path)) {
  unlink($file_with_path);
}

1

解除目录链接在所有文件系统上都不起作用,这就是为什么有rmdir()的原因。 - Marc B

0
我们可以使用这段代码。
$path="images/all11.css";

if(unlink($path)) echo "Deleted file ";

0

0

这不仅是可以的,而且是在PHP中删除文件的唯一方法(除了系统调用)。


-4
if (isset($_POST['remove_file'])) {
           $file_path=$_POST['fileremove'];
     // chown($file_path, 'asif');
     // echo $file_path;
    if (file_exists($file_path)) {
          unlink($file_path);
        echo "file deleted<br> the name of file is".$file_path."";

        # code...
    }
    else
        echo "file is not deleted ".$file_path."";
    # code...
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接