PHP可以在_destruct()期间保存到文件中吗
我想在我的一个类中使用PHP可以在_destruct()期间保存到文件中吗,php,destroy,file-put-contents,Php,Destroy,File Put Contents,我想在我的一个类中使用\uu destruct()函数将一些信息保存到服务器上的文件中 但是,每次我尝试在\uu destruct()中使用file\u put\u contents(…),都会出现以下错误: 警告:文件内容(HTMLcache.txt):无法打开流:第141行的/Applications/MAMP/htdocs/time/HJ_Tag.php中的权限被拒绝 file\u put\u contents(…)在我的代码的其他部分工作得很好,在同一个文件中调用它。在\uuu dest
\uu destruct()
函数将一些信息保存到服务器上的文件中
但是,每次我尝试在\uu destruct()
中使用file\u put\u contents(…)
,都会出现以下错误:
警告:文件内容(HTMLcache.txt):无法打开流:第141行的/Applications/MAMP/htdocs/time/HJ_Tag.php中的权限被拒绝
file\u put\u contents(…)
在我的代码的其他部分工作得很好,在同一个文件中调用它。在\uuu destruct()
期间,是什么导致了这个错误,我该如何修复它?我想你的意思是\uu destruct()
而不是\uu destruct()
,所以我编辑了你的帖子
PHP可以在_destruct()期间保存到文件中吗
是的,它可以。
但是,当您将相对文件名与file\u put\u contents()一起使用时,如下所示:
file_put_contents('hello.txt', 'hello world');
该文件实际上可能是在您不期望的地方创建的,并且您可能没有写入权限,
这解释了错误消息
在我的例子中,它是在C:\Users\Rei\AppData\Local\VirtualStore
中创建的。
这很奇怪,因为我从未指定过那个目录。
我必须搜索我的整个硬盘才能找到它
要防止出现这种情况,请始终使用绝对文件名。
例如,在文件名之前添加\uuuuu DIR\uuuu
file_put_contents(__DIR__ . 'hello.txt', 'hello world');
并确保您具有写入权限。您是否绝对确定它是“完全相同的文件”?在这两种情况下,您使用的是什么文件路径?我想说的是,在垃圾收集期间(当执行\uu destruct()
时),CWDchanges@Phil是的,很有可能。我在一篇文章中读到了这一点。