Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann das Problem gelöst werden, dass sich die Dateierstellungszeit (filectime) nicht ändert, nachdem PHP die Datei löscht und neu erstellt? ?

Wie kann das Problem gelöst werden, dass sich die Dateierstellungszeit (filectime) nicht ändert, nachdem PHP die Datei löscht und neu erstellt? ?

WBOY
Freigeben: 2016-10-10 11:39:08
Original
1038 Leute haben es durchsucht
  1. php erstellt eine Datei mit dem Namen test.html und verwendet filectime, um die Erstellungszeit t1 abzurufen

  2. php löscht die Datei namens test.html

  3. php erstellt die Datei namens test.html neu und verwendet filectime, um die Erstellungszeit t2 zu ermitteln

Warum t1 = t2? ? Warum wird die Erstellungszeit nicht aktualisiert? ? Ich habe die Funktion „clearstatcache“ verwendet, um den Dateistatus-Cache zu löschen, aber es hat nicht funktioniert. Wie kann ich dieses Problem lösen? ? (Da es wichtig ist, die Erstellungszeit der Cache-Datei zu kennen, um zu beurteilen, ob die Cache-Datei neu generiert werden soll, lösen Sie sie bitte ~)
Das Folgende ist der Code für das Problem, das in dieser Situation auftritt (es ist etwas dicht , bitte haben Sie etwas Geduld) (Xiaha):

<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>
Nach dem Login kopieren
Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage