你可以使用file_put_contents写文件同时读取文件吗?

时间:2013-08-11 16:40:37

标签: php

当用户登陆页面时,我想将有关其浏览器/ IP /位置的一些信息写入文件 在文件的顶部,我有一些PHP代码检查我的cookie,如果我是管理员将回显文件的内容到页面,所以我可以看到访问者数据列表(使用file_get_contents)。我将创建一个函数,在某个时刻将数据显示在表中。

我很想使用file_put_contents并设置FILE_APPEND标志,因为它看起来很容易使用。是否有任何文件权限与读取和写入文件冲突,如果是这样,fopen / fwrite如何避免这种冲突?

1 个答案:

答案 0 :(得分:0)

fopen / fwrite不会避免文件权限冲突。某个级别的file_put_contents正在使用fopen / fwrite。他们只是要求内核打开一些文件进行读/写/追加,内核说是或否。如果内核说不,它会给出一些理由,比如没有权限。

您使用fopen / fwrite的程序由某个用户和组运行。如果文件用户和/或组权限允许您的进程fopen / fwrite,那么您可以。如果没有,那么您将收到无权限错误。

最简单的方法是将文件中的用户/组设置为运行PHP程序的用户/组。这很可能是您的Web服务器正在使用的用户/组,但不必在每个设置中。

您还可以考虑先使用is_readableis_writable检查权限。

相关问题