无法在PHP中删除文件

时间:2012-04-19 15:17:23

标签: php fopen chmod unlink

我无法使用unlink()删除文件,当我将fopen"w"标记一起使用时,我收到错误消息。该文件有777 chmod。我可以使用fopen()在文件末尾写入。但我不能删除任何东西。 请有人帮帮我吗?

以下是一个示例:

   echo substr(sprintf('%o', fileperms('..')), -4); //777
   echo substr(sprintf('%o', fileperms('.')), -4); //777
   echo substr(sprintf('%o', fileperms('test')), -4); //777
   chmod('tmp',0777);  //Permission denied

2 个答案:

答案 0 :(得分:2)

unlink某个文件,您需要对其所在目录具有写入权限。拥有该文件本身chmod'd 777将无济于事

答案 1 :(得分:0)

之前我遇到过这个问题,并且能够在关闭文件之后强制进行垃圾回收并在取消链接之前进行补救:

gc_collect_cycles();

到目前为止还不是最好的解决方案,但它确实解决了我之前删除过以前打开过的文件并关闭之前的问题。