我有一块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位访问者时,才会每天生成一次站点地图。
但是如果网站有很多流量,这是我最初担心这样做的话,那么不检查sitemap.xml文件的filemtime
会导致几乎相同的开销。服务器为每个请求生成站点地图文件?