Как выполнить блок кода в PHP один раз в день в главном файле шаблона? Non cron

У меня есть блок кода PHP, который генерирует файл sitemap.xml. Проблема в том, что он генерирует файл каждый раз, когда загружается страница сайта. Код находится в моем основном файле шаблона.

Как я могу сказать PHP, чтобы выполнять этот код только один раз в день, а не каждый раз, когда загружается шаблон?

Я не хочу использовать вкладку cron, потому что код должен находиться в файле шаблона. Файл шаблона вытягивается для нескольких доменов в одной учетной записи. Поэтому мне нужно поставить условие на блок кода, который говорит, что only run this code when a page is loaded but only during a certain time frame each day, like from 12 noon to 4pm or something like that .

Я знаю, для чего нужен cron, но это нужно сделать в PHP.

ОБНОВИТЬ

Так вот что я придумал на основе ответа Travesty3 .

 $time = time(); $sitemap = $_SERVER['DOCUMENT_ROOT'].'/sitemap.xml'; if ($time - filemtime($sitemap) >= 1*24*60*60) { // 1 days (generate sitemap code here) } 

Это прекрасно работает. Карта сайта теперь генерируется только один раз в день, только если на сайте есть как минимум 1 посетитель в день.

Но если сайт имеет большой трафик, который был моей первоначальной заботой для этого, в первую очередь, не будет проверять filemtime время файла sitemap.xml, вы filemtime почти такое же количество накладных расходов на сервере, как и создание файла Sitemap каждый запрос?

Вы можете проверить filemtime в сгенерированном файле и генерировать его только при загрузке страницы, если ему больше 24 часов.

Кроме того, вы можете использовать cron для выполнения скрипта PHP или вызова URL-адреса. Так и есть.