> 백엔드 개발 > PHP 튜토리얼 > PHP가 파일을 삭제하고 다시 빌드한 후 파일 생성 시간(filectime)이 변경되지 않는 문제를 해결하는 방법은 무엇입니까? ?

PHP가 파일을 삭제하고 다시 빌드한 후 파일 생성 시간(filectime)이 변경되지 않는 문제를 해결하는 방법은 무엇입니까? ?

WBOY
풀어 주다: 2016-10-10 11:39:08
원래의
1028명이 탐색했습니다.
  1. php는 test.html이라는 파일을 생성하고 filectime을 사용하여 생성 시간 t1을 가져옵니다

  2. php는 test.html이라는 파일을 삭제합니다.

  3. 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>
로그인 후 복사
관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿