最近网站访问量增大本来想启用缓存 结果发现启用了display_override钩子以后 居然无法使用页面缓存了。于是研究了半天终于找到解决方案分享给大家
首先是利用钩子 来写一个关键词过滤类
主要是第一步继承CI类
$this->CI =& get_instance(); $data=$this->CI->output->get_output();并获取输出内容保存起来以备后面使用
然后就用自己的规则来对输出的内容进行非法词清理
清理完成以后就把清洗完后的输出内容再写回输出缓存中
$this->CI->output->set_output($data);最后调用输出类里面的_displa方法来输出到浏览器
$this->CI->output->_display();PS:注意一定要调用输出方法否则不会有任何输出,之前由于没有怎么看ci手册我就直接echo输出了,结果导致了页面静态缓存无法正常使用。调用_displa后就可以使用页面缓存了。
另外output的所有方法在控制器中可以直接使用但是记得在$this->load->view()以后使用否则是回去不到数据的
具体可以参考一下ci官方的output(输出类)说明文档
链接地址:http://codeigniter.org.cn/user_guide/libraries/output.html
这个还有一个小bug就是缓存文件过期好像不能使用了,我的解决方法是写一个shell脚本,定时对超时文件进行清理。具体怎么写这个shell脚本请看下一篇文章。
除特别注明外,本站所有文章均为博文家原创,转载请注明出处来自https://www.32e.top/develop/php/article-47.html
暂无评论