经过一个上午的查询资料,我发现了别人忽略的一个地方,在includes文件下有一个叫lib_base.php的文件,里面存着这样的两个函数
函数一:
read_static_cache()
/** * 读结果缓存文件 * * @params string $cache_name * * @return array $data */ function read_static_cache($cache_name) { if ((DEBUG_MODE & 2) == 2) { return false; } static $result = array(); if (!emptyempty($result[$cache_name])) { return $result[$cache_name]; } $cache_file_path = ROOT_PATH . ’/temp/static_caches/’ . $cache_name . ’.php’; if (file_exists($cache_file_path)) { include_once($cache_file_path); $result[$cache_name] = $data; return $result[$cache_name]; } else { return false; } }
另一个函数
write_static_cache()
/** * 写结果缓存文件 * * @params string $cache_name * @params string $caches * * @return */ function write_static_cache($cache_name, $caches) { if ((DEBUG_MODE & 2) == 2) { return false; } $cache_file_path = ROOT_PATH . ’/temp/static_caches/’ . $cache_name . ’.php’; $content = ”<?php\r\n”; $content .= ”\$data = ” . var_export($caches, true) . ”;\r\n”; $content .= ”?>”; file_put_contents($cache_file_path, $content, LOCK_EX); }
这两个函数就是控制读出和写入缓存的,在各个页面中都有被用到。而从上面的错误信息分析来看,只有不让它写入到temp文件夹下就能解决问题,也就是缓存的屏蔽,将这两个函数,在第一个 if 前面加上
-
return false;
直接屏蔽掉功能,这样改过之后,(测试之前应该删除原有的除index.htm以 外的文件,然后通过反复访问进行测试缓存的写入)我测试了一下,temp/static_caches/文件夹下不再写入缓存文件了,只保留有 index.htm,也就是不会再出现刚开始的那种错误了,因为写入和读出都被屏蔽了。最直接是页面的错误消失了,网站恢复了正常,让人感到欣慰
如果以上都解决不了,你不妨查看一下,是否你的空间满了,很多人曾经遇到过这样的问题!