网站地图sitemap.xml自动更新lastmod文件(PHP代码)-更新
上一遍《网站地图sitemap.xml自动更新lastmod文件(PHP代码)》代码在实际应用中并不理想,在浏览器中访问后,过一会就出现500的错误,不能实现夜间或者凌晨变更日期的目的。
对代码进行了更新,把更新后的php页面在index.php中被调用,也就是只要有人访问网站首页或者蜘蛛抓取时,sitemap.xml中的日期就会被变更。
test.php页面,放在/runc/目录下
<?php sitemaptest(); function sitemaptest() { $xml="../sitemap.xml"; $a=filemtime($xml); //文件修改日期 $filetime = date("Y-n-d",$a); //文件修改日期进行格式化 if ( $filetime != date("Y-n-d") ) //判断文件修改日期是否等于今天。如果等于今天日期,则什么也不做;否则修改sitemap.xml中的lastmod时间 { $lastmod = '<lastmod>'; $lastmod .= date("Y-n-d",strtotime("-1 day")); //前一天日期date("Y-n-d",strtotime("-1 day"));substr(md5(time()), 0, 8); $lastmod .= "</lastmod>\n"; $fpxml=fopen($xml,"rw+"); while(!feof( $fpxml )) { $m = fgets( $fpxml,1024 ); //fgets逐行读取,4096最大长度,默认为1024 if( substr_count( $m,"<priority>0.8</priority>" ) > 0 || substr_count( $m,"<priority>1.0</priority>" ) > 0 ) //查找字符串 { fwrite($fpxml, $lastmod); } } fclose($fpxml); } } ?>
在index.php中调用test.php
<?php $url="test.php网址"; file_get_contents($url); ?>