PHP 可以在 __destruct() 期间保存到文件吗
Can PHP save to a file during __destruct()
我想在我的 类.
之一中使用 __destruct()
函数将一些信息保存到我服务器上的文件中
但是,每次我尝试在 __destruct()
中使用 file_put_contents(...)
时,我都会收到此错误:
Warning: file_put_contents(HTMLcache.txt): failed to open stream: Permission denied in /Applications/MAMP/htdocs/time/HJ_Tag.php on line 141
file_put_contents(...)
在我的代码的其他部分工作得很好,它在完全相同的文件上被调用。 __destruct()
期间出现此错误的原因可能是什么?我该如何解决?
我认为你的意思是 __destruct()
而不是 __destroy()
,所以我编辑了你的 post。
Can PHP save to a file during __destruct()
是的,可以。
但是,当您像这样使用带有 file_put_contents()
的相对文件名时:
file_put_contents('hello.txt', 'hello world');
该文件实际上可能是在您意想不到的地方创建的,您可能在那里没有写权限,
这解释了错误消息。
就我而言,它是在 C:\Users\Rei\AppData\Local\VirtualStore
中创建的。
这很奇怪,因为我从未指定该目录。
我不得不搜索我的整个硬盘驱动器才能找到它。
为防止出现这种情况,请始终使用绝对文件名。
例如,在文件名前添加__DIR__
。
file_put_contents(__DIR__ . 'hello.txt', 'hello world');
并确保您有写入权限。
我想在我的 类.
之一中使用__destruct()
函数将一些信息保存到我服务器上的文件中
但是,每次我尝试在 __destruct()
中使用 file_put_contents(...)
时,我都会收到此错误:
Warning: file_put_contents(HTMLcache.txt): failed to open stream: Permission denied in /Applications/MAMP/htdocs/time/HJ_Tag.php on line 141
file_put_contents(...)
在我的代码的其他部分工作得很好,它在完全相同的文件上被调用。 __destruct()
期间出现此错误的原因可能是什么?我该如何解决?
我认为你的意思是 __destruct()
而不是 __destroy()
,所以我编辑了你的 post。
Can PHP save to a file during __destruct()
是的,可以。
但是,当您像这样使用带有 file_put_contents()
的相对文件名时:
file_put_contents('hello.txt', 'hello world');
该文件实际上可能是在您意想不到的地方创建的,您可能在那里没有写权限, 这解释了错误消息。
就我而言,它是在 C:\Users\Rei\AppData\Local\VirtualStore
中创建的。
这很奇怪,因为我从未指定该目录。
我不得不搜索我的整个硬盘驱动器才能找到它。
为防止出现这种情况,请始终使用绝对文件名。
例如,在文件名前添加__DIR__
。
file_put_contents(__DIR__ . 'hello.txt', 'hello world');
并确保您有写入权限。