我已经阅读了php的手册页面上的file_get_contents函数,它没有说明任何关于如何file_get_contents行为关于php的文件锁定。然而,在评论部分,用户克里斯建议
file_get_内容通常不考虑PHP的群集锁定,即建议锁定。
您可以使用一些额外的代码来请求共享锁,例如...
<?php
$tmp = fopen($path, 'rb');
@flock($tmp, LOCK_SH);
$contents = file_get_contents($path);
@flock($tmp, LOCK_UN);
fclose($tmp);
?>
我已经成功地测试过了。我还测试了即使文件已锁定flock()
专门LOCK_EX
有可能有另一个php进程通过file_get_contents
读取文件,因为注释会建议。
然而,这也是我询问信息的主要原因,我读了一个名为“在PHP中读取锁定文件”的网页,该网页声称以下关于file_get_contents
和文件锁定。
正在读取包含文件\u get\u内容()的锁定文件
这是在文件被锁定和修改时读取文件的最糟糕的方法之一,因为:
-file_get_contents()将返回一个空字符串(如")
-filesize()将返回写入文件的实际字节数
我这个说法正确吗?我运行一些测试,锁定一个文件专门和不断写入它,而使用file_get_contents
在另一个php进程中读取文件,并没有经历如上所述的行为
file_get_contents()将返回一个空字符串(如")
php的file\u get\u contents
通常不关心建议文件锁定,这是真的吗。此外,我是否正确地假设,在网页中对文件“get\u contents”返回的空字符串的声明为空“”,仅当文件为空时,或临时为空(在修改时),但通常不为空(仅因为文件为flock()
ed)?
flock相对独立于文件操作,甚至可以使用fopen对文件进行锁定。作为开发人员,您有责任在需要锁的任何地方检查/使用群。
但是在这方面是的,file\u get\u contents
确实没有内置的方式来获取读取文件时的读取锁定。因此,解决办法将是一条出路。
file\u put\u contents
允许您获得写入锁定。
PHP/Apache2中的文件获取内容是从Facebook获取用户图片。直到最近,它一直运转良好。现在,它总是在一分钟后超时,在我的Apache2 error.log中有以下错误: PHP警告:文件\u获取\u内容(https://graph.facebook.com/999999999/picture?width=200):无法打开流:连接超时 下面是代码(我最近添加了$context以查看它是
本文向大家介绍Git 检查文件是否被忽略,包括了Git 检查文件是否被忽略的使用技巧和注意事项,需要的朋友参考一下 示例 该git check-ignore命令报告Git忽略的文件。 您可以在命令行上传递文件名,git check-ignore并将列出被忽略的文件名。例如: 在此,.gitignore中仅定义了* .o文件,因此Readme.md未在.git的输出中列出git check-igno
我正在使用php执行一个远程url,使用文件内容。如果file_get_contents检索到的内容不是空的,那么我会回显一条消息,说是complete。 然而,远程网址有时可能需要一点时间来加载,因为这整个PHP页面需要很长时间来加载。当它完成时,显示结果为完成或错误 谢谢
我正在尝试使用tomcat设置kerberos/spnego身份验证。我在tomcat目录下添加了一个krb5.conf文件,在SpnegoFilterConfig中读取值并设置java.security.krb5.conf,但是似乎没有考虑到这一点。无论文件是否存在,我都会得到相同的结果。 如果我把jce安全文件放在lib/security中,我会得到 然而,无论我是否拥有krb5.conf,这
虽然这不是一个直接的开发问题,但它确实与一个开发工具有关,这与我的开发工作非常相关: 当我在 VSCode (CTRL P) 中搜索文件时,我发现它不包含作为 .gitignore 文件一部分的文件和文件夹。 我可以很好地理解其中的逻辑,这很好,但我如何禁用它(默认设置?)行为也就是说,我确实希望这个搜索包括项目中的所有文件,而不管是.gitignore文件(还是其他任何忽略文件)。
问题内容: 我有一个由命令(使用任务)生成的文件。我不想将其添加到git存储库中,也不想添加到NPM项目中。 假设文件名是,我将其添加到文件中。 这足以避免将其上传到NPM注册表中吗? 我知道我可以添加肯定会忽略该文件的文件,但是如果已经这样做,则不会添加它。 问题答案: 如果项目同时具有和文件,则npm将 仅 使用该文件。 从文档中: 使用文件将东西从包装中取出。如果没有文件,但有 是 一个文件