我想在PHP中从文件夹中删除一个文件,但我只有这个文件的路径,将路径提供给unlink函数是否可行?例如:
unlink('path/to/file.txt');
如果这不起作用,唯一的方法是在 path/to/ 目录中创建一个 .php 文件,并以某种方式将其包含到我的文件中,并在那里调用一个方法来删除该文件,对吗?有一个简单的方法可以回答您的问题
使用这段代码从文件夹中删除文件
$_SERVER['DOCUMENT_ROOT']
这可以在unlink函数内使用。
代码已经运行成功
unlink($_SERVER['DOCUMENT_ROOT'] . "/path/to/file.txt");
unlink
文档:
bool unlink ( string $filename [, resource $context ] )
并且
filename
文件路径。
因此,它仅接受文件名的字符串作为参数。
确保文件可以通过执行脚本的位置的路径访问。绝对路径不会有问题,但是相对路径可能会出现问题。
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
?>
不要忘记检查文件是否存在,否则如果文件不存在就会出错:
$file_with_path = $_SERVER['DOCUMENT_ROOT'] . "/path/to/file.txt";
if (file_exists($file_with_path)) {
unlink($file_with_path);
}
你可以使用路径来执行unlink操作。
只要你先清空了目录,也可以对目录执行unlink操作。
$path="images/all11.css";
if(unlink($path)) echo "Deleted file ";
unlink
接受字符串参数来表示路径。
换句话说,你已经拥有了删除文件所需的一切。这不仅是可以的,而且是在PHP中删除文件的唯一方法(除了系统调用)。
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...
}