什么是更好的?我有自己的MySQL日志,所以它有大约90MB,但我不确定应该使用哪一个.它打开文件EVERYTIME有执行的查询.
什么更快?
hwr*_*kns 41
根据这篇文章,这fwrite()是一个更快的smidgen.(链接到Wayback Machine,因为站点不再存在.)
我的猜测是,这file_put_contents()只是这三种方法的包装,所以你会失去开销.
编辑:这个网站有相同的信息.
sha*_*ain 27
此函数与连续调用fopen(),fwrite()和fclose()以将数据写入文件相同.
查看文档:http: //php.net/manual/en/function.file-put-contents.php
肖恩
cwa*_*ole 10
取决于您的用例.我打开了超过.5 GB的文件,我当然不想使用file()或file_get_contents(); 并且file_put_contents无法工作,因为我也需要读取文件.
如果你真的只是想在没有阅读的情况下附加文件,那就不是很重要了; 如果你试图将整个文件读入内存(或从内存中写入一个完整的文件),它同样并不重要 - 速度增益,就像我看到的那样,是四舍五入的错误.
但是,如果你期望这些文件会变成庞大的野兽,或者如果你只需要一小部分给定文件的行数,我就不能建议SplFileObject强烈使用fopen(或者,这是真棒)足够 - 用这些文件从文件中间读取真的很容易.
另一方面,由于您只是记录,我个人认为只需将file_put_contents与append标志一起使用就更清晰,更简洁.它让每个人都知道发生了什么,而不必看两次.
按照惯例,你有基准吗?file_put_contents本质上只是一个围绕3个f*()调用的包装器,所以最多你通过做一个额外的函数调用而失败,但通过减少前端代码来解析会有所收获.
小智 7