前几天测试,发现include(require)一个文件要远比file_get_contents慢(甚至能差一个数量级)。一般PHP的文件缓存是将数组解析成PHP变量赋值语法格式写入一个PHP文件中,载入缓存使用include,大多数人都认为这样会比较快,但是考虑到file_get_contents与include之间巨大的速度差,我还是测试了一下file_get_contents然后反串行化(自然文件的内容直接就是串行化后的字符串)的速度与include进行比较。测试发现大部分情况下反串行化速度都要比include快,大多是时候比include速度快一倍,只有保存的数据非常简单才有可能include比较快(例如空数组,不过有一次发现include快,过了几个小时再测试又成了反串行化快….所以先说有可能…),感兴趣的朋友可以测试看看
另外,提醒一点,不要在file_get_contents一个文件之前include这个文件,否则file_get_contents会非常的慢
—————— 2018年1月30日 —————–
在 PHP7.2.1 上测试,include 比 file_get_contents 再 unserialize 要快的多,执行时间差300倍…. 所以对于文件缓存 include 是当前最好的办法
并且不会再出现 include 影响 fopen 速度的问题了
file_get_contents
(PHP 4 >= 4.3.0, PHP 5)
file_get_contents — 将整个文件读入一个字符串
说明
string file_get_contents ( string filename [, bool use_include_path [, resource context [, int offset [,
int maxlen]]]] )
和 file() 一样,只除了 file_get_contents() 把文件读入一个字符串。将在参数 offset 所指定的位置开始读取长度为
maxlen 的内容。如果失败,file_get_contents() 将返回 FALSE。
file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法。如果操作系统支持还会使用内存映射技
术来增强性能。
注: 如果要打开有特殊字符的 URL (比如说有空格),就需要使用 urlencode() 进行 URL 编码。
注: context 参数可以用 NULL 来忽略。
更新日志
版本 说明
5.0.0 添加了对 context 的支持。
5.1.0 添加了 offset 和 maxlen 参数。
注释
注: 本函数可安全用于二进制对象。
似乎不常用哦!
CSS比以前做的好多了!加油……
我明明留言了,首页怎么还是“0 则留言”???
Blog用了官方的防止垃圾留言插件,但是这个插件经常会把正常留言也弄成垃圾留言…所以可能留言后看不到,要等我去后台审核= =b
注意这一句:file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法。在php4.3以上建议使用这一个函数来读取文件内容
file_get_contents就是用来代替fopen、fread、fclose这一过程的,这个函数里面就是做了这三个函数的操作,在PHP5还有一个file_put_contents,作用是代替fopen、fwrite、fclose这个过程
关于最后补充的不要在file_get_contents一个文件之前include这个文件,其实应该更扩大了说不要在fopen一个文件之前include这个文件,否则fopen会很慢
读入到一个字符串?有点难理解哦!好像这个函数可以打开远程文件,我看这还是用的比较多些;比如抓取股票价格等什么的。老大,你CSS做的挺牛!我全拷下来了,共4CSS个文件吧!
未组织好
?feed=rss (line 35)
从官方论坛看到的(http://sourceforge.net/forum/forum.php?thread_id=1468237& forum_id=416741),总是最新的版本,更新的很快,现在已经是v0.9.4 for PHP4.4.4和v0.9.5 rc1 for PHP5.1.6,两边都是紧跟最新版本,推荐