如果我写fopen($myfile,’a’),并且$myfile是一个非常大的文件,服务器是否必须读取整个文件才能将指针返回到文件末尾?或者它是否快速找到指向文件末尾的指针然后返回?
在相关的说明中,当我然后使用fwrite()时,我认为它不会覆盖整个文件,对吧?它只是附加东西?
我基本上试图找出带有’a’选项的fopen()和fwrite()是否为O(1)或O(n),其中n是prexisting文件的长度.
解决方法:
实际的复杂性取决于底层文件系统的复杂性,但PHP本身不会循环或读取整个文件,它将寻求最终并从那里开始编写.当打开一个附加更多的文件时,它不会被fwrite删除(你可以轻松地尝试这个以查看它是如何工作的).