自动生成sitemap的PHP代码很多,但是真正抽象出来可以复用的,却很少看见。
这里整理的一段代码,可以直接放在任意项目中使用。

$thread = DB::fetch_all("SELECT * FROM ".DB::table('forum_thread')." ORDER BY tid DESC");// 创建一个DOMDocument对象$dom = new DOMDocument("1.0","utf-8");header("Content-Type: text/xml");// 创建根节点$root = $dom->createElement("urlset");$dom->appendChild($root);foreach($thread as $value){ // 建立根下子节点track $track = $dom->createElement("url"); $root->appendChild($track); // 建立track节点下元素 $loc = $dom->createElement("loc"); $track->appendChild($loc); $priority = $dom->createElement("priority"); $track->appendChild($priority); $lastmod = $dom->createElement("lastmod"); $track->appendChild($lastmod); $changefreq = $dom->createElement("changefreq"); $track->appendChild($changefreq); // 赋值 $text = $dom->createTextNode('http://localhost/thread-'.$value[tid].'-1-1.html'); $loc->appendChild($text); $date = date("Y-m-d",time()); $text = $dom->createTextNode($date); $lastmod->appendChild($text); $text = $dom->createTextNode(daily); $changefreq->appendChild($text); $text = $dom->createTextNode(0.8); $priority->appendChild($text);}//生成xml文件$dom->save("sitemap.xml");exit;
顺便普及一下常识:sitemap是一段xml代码,用来表示网站有哪些内容,以方便搜索引擎快速了解并抓取网站。可以参考:
http://yanyubao.tseo.cn/saasdocs/xmlsitemap.xml
另外一方面,也不是每个网站都需要设置站点地图的,例如左侧功能导航做得非常好的网站,搜索引擎已进入就能够自动快速分析出网站的主要架构,对SEO非常友好。但这里例外的,是左侧的功能导航使用iframe来做的,会让搜索引擎不知道所以然。
当站点中有多个sitemap的时候,需要在robots.txt中说明,这样搜索引擎才知道,撰写的格式为:
Sitemap: http://yanyubao.tseo.cn/saasdocs/xmlsitemap.xmlSitemap: http://yanyubao.tseo.cn/saasdocs/xmlsitemap02.xml
希望以上知识点对大家有帮助。
还没有评论,来说两句吧...