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? ?
php erstellt eine Datei mit dem Namen test.html und verwendet filectime, um die Erstellungszeit t1 abzurufen
php löscht die Datei namens test.html
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>