file_put_contents,不仅可以传入字符串,还可以传入对象、资源、数组等其他类型,函数内部会进行转换并且校验,还会检查文件写锁,而fwrite只接收字符串参数并且不进行判断,直接向传入的file_handle写入数据,但是他们最终都是通过php_stream系列的函数进行文件写入,调用的是系统的低层io,posix write,所谓文件缓存,只是让数据保存在内存中,每次截取8k大小写入,而不是一个一个字节写入。
================================
fopen once,fwrite 100000 ,fclose once
real 0m0.118suser 0m0.037s
sys 0m0.081s
fopen fwrite fclose 10000
real 0m0.522s
user 0m0.187s
sys 0m0.331s
file_put_content 10000
real 0m12.607s
user 0m0.539s
sys 0m3.863s
file_put_contents flags => FILE_APPEND
real 0m0.451s
user 0m0.097s
sys 0m0.354s