php는 test.html이라는 파일을 생성하고 filectime을 사용하여 생성 시간 t1을 가져옵니다
php는 test.html이라는 파일을 삭제합니다.
php는 test.html이라는 파일을 다시 생성하고 filectime을 사용하여 생성 시간 t2를 가져옵니다
왜 t1 = t2인가요? ? 생성 시간이 업데이트되지 않는 이유는 무엇입니까? ? 파일 상태 캐시를 지우기 위해 Clearstatcache 기능을 사용했는데 작동하지 않습니다. 이 문제를 해결하는 방법은 무엇입니까? ? (캐시파일 재생성 여부 판단시 캐시파일 생성시간을 아는 것이 중요하므로 해결 부탁드립니다~)
이러한 상황에서 발생하는 문제에 대한 코드는 다음과 같습니다(조금 촘촘합니다) , 조금만 기다려주세요) (시아하):
<code> // 页面缓存 if ((defined('DEBUG_MODE') && !DEBUG_MODE) && (defined('CACHE_CONTROL') && CACHE_CONTROL)) { $opr = $GLOBALS['module'] . '/' . $GLOBALS['platform'] . '/' . $GLOBALS['controller'] . '/' . $GLOBALS['act']; $cache_name = md5($opr) . TEMPLATE_SUFFIX; $cache_file = APP_DIR . '/' . $GLOBALS['module'] . '/' . $GLOBALS['platform'] . '/Cache/' . $cache_name; // 清除文件状态缓存(就我使用的情况来看,压根没毛用...,这什么情况??) clearstatcache(); // 缓存文件不存在 创建 if (!$GLOBALS['FOpr']->checkFile($cache_file)) { require_once $view_file; $GLOBALS['FOpr']->cFile($cache_file); $GLOBALS['FOpr']->wData($cache_file , ob_get_contents()); } else { // 超时重新缓存 if (time() > filectime($cache_file) + CACHE_LIFE_TIME) { require_once $view_file; // 缓存文件超时时,先删除原缓存文件 $GLOBALS['FOpr']->dFile($cache_file); // 新建同名缓存文件 //(新建文件时,filectime 获取文件创建时间一直没更新!这个怎么破?? // 这导致我没法重新生成缓存文件了!) $GLOBALS['FOpr']->cFile($cache_file); // 写入缓存 $GLOBALS['FOpr']->wData($cache_file , ob_get_contents() , 'w'); } else { // 加载缓存文件 require_once $cache_file; } } } else { // 显示动态文件(非缓存) require_once $view_file; }</code>