<?php $_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__) . "/../../../.."); $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"]; define("NO_KEEP_STATISTIC", true); define("NOT_CHECK_PERMISSIONS", true); define("BX_CRONTAB", true); define('BX_NO_ACCELERATOR_RESET', true); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; @set_time_limit(0); @ignore_user_abort(true); $hours = is_array($argv) && count($argv) > 1 && intval($argv[1]) > 0 ? intval($argv[1]) : 24; $validTime = time() - $hours * 60 * 60; $bytes = \Bitrix\Main\Data\StaticHtmlFileStorage::deleteRecursive("/", $validTime); CHTMLPagesCache::updateQuota(-$bytes);
private static function onEpilogHtmlCache() { global $USER; $bAutorized = is_object($USER) && $USER->IsAuthorized(); if(!$bAutorized && defined("HTML_PAGES_FILE")) { @setcookie(session_name(), "", time()-360000, "/"); } $bExcludeByFile = $_SERVER["SCRIPT_NAME"] == "/bitrix/admin/get_start_menu.php"; $posts = 0; $bytes = 0.0; $all_clean = false; //Check if modifyng action happend if(($_SERVER["REQUEST_METHOD"] === "POST") || ($bAutorized && check_bitrix_sessid() && !$bExcludeByFile)) { //if it was admin post if(strncmp($_SERVER["REQUEST_URI"], "/bitrix/", 8) === 0) { //Then will clean all the cache $bytes = \Bitrix\Main\Data\StaticHtmlFileStorage::deleteRecursive("/"); $all_clean = true; } //check if it was SEF post elseif(array_key_exists("SEF_APPLICATION_CUR_PAGE_URL", $_REQUEST) && file_exists($_SERVER['DOCUMENT_ROOT']."/urlrewrite.php")) { $arUrlRewrite = array(); include($_SERVER['DOCUMENT_ROOT']."/urlrewrite.php"); foreach($arUrlRewrite as $val) { if(preg_match($val["CONDITION"], $_SERVER["REQUEST_URI"]) > 0) { if (strlen($val["RULE"]) > 0) $url = preg_replace($val["CONDITION"], (StrLen($val["PATH"]) > 0 ? $val["PATH"]."?" : "").$val["RULE"], $_SERVER["REQUEST_URI"]); else $url = $val["PATH"]; $pos=strpos($url, "?"); if($pos !== false) { $url = substr($url, 0, $pos); } $url = substr($url, 0, strrpos($url, "/")+1); $bytes = \Bitrix\Main\Data\StaticHtmlFileStorage::deleteRecursive($url); break; } } } //public page post else { $folder = substr($_SERVER["REQUEST_URI"], 0, strrpos($_SERVER["REQUEST_URI"], "/")); $bytes = \Bitrix\Main\Data\StaticHtmlFileStorage::deleteRecursive($folder); } $posts++; } if($bytes > 0.0 && class_exists("cdiskquota")) { CDiskQuota::updateDiskQuota("file", $bytes, "delete"); } if($posts || $bytes) { self::writeStatistic( 0, //hit 0, //miss 0, //quota $posts, //posts ($all_clean? false: -$bytes) //files ); } }