我想删除webroot以外的php(unlink函数)文件。我的网络根目录在
C:\server\webroot\project\... in webroot I have folder named project and in there I have .php files.
关于文件目录的内容。它位于C:\ server \ mp3_files ...
我也在mp3_files目录的httpd.conf Alias(“mp3”)中创建了
我在C:\ server \ webroot \ project \ test.php
中编写此脚本脚本就像这样=>
function delete($filename){
if (unlink("/mp3/" . $filename)){
echo "Deleted";
} else {
echo "No";
}
}
delete("file.txt");
这个脚本给了我php-errors => PHP-WARNING没有此类文件或目录
我也有(test.php)html格式这个=>
<a href="/mp3/file.txt">Download</a>
这样可行(它打开此文件.txt)
所以我想知道为什么不能删除标记功能“delete($ filename)”?
答案 0 :(得分:2)
“/ mp3 /”。 $ filename是一个绝对的文件路径,而不是相对于webserver root,所以它假设你在文件系统根目录下有一个mp3目录,你应该在/ server / mp3下查看
修改强>
是/ server / mp3还是/ server / mp3_files
你的帖子似乎与你的代码相矛盾
答案 1 :(得分:2)
PHP中的文件功能来自文件系统根目录。
你应该写:
function delete($filename){
if (unlink("C:\\server\\mp3_files\\" . $filename)){
echo "Deleted";
} else {
echo "No";
}
}
delete("file.txt");
答案 2 :(得分:1)
要确保内部PHP文件路径缓存获取正确的信息,请在取消链接之前和之后使用clearstatcache()
重置它。通常,在与文件操作相关的每个PHP函数之后重置路径缓存。如果删除shell_exec('rm file.txt')
或类似的文件,则需要重新设置缓存。
请参阅http://php.net/manual/ini.core.php#ini.realpath-cache-size和http://php.net/manual/ini.core.php#ini.realpath-cache-ttl