### [经典帝国CMS生成sitemap实现代码分享](https://www.prosaas.cn/article/3537) **Published:** 2019-11-29T05:50:07 **Author:** 5201314 **Excerpt:** 因为对帝国CMS的sitemap插件不太满意,所以自己写了个sitemap生成工具,在sitemap中放了首页… ![](//zhiqipro.oss-cn-beijing.aliyuncs.com/2023/12/20231212122000398.gif) 因为对帝国CMS的sitemap插件不太满意,所以自己写了个sitemap生成工具,在sitemap中放了首页链接、栏目页链接和内容页链接,然后生成XML文件并且提交到百度站长工具,本文中的代码是需要生动生成的,我自己是在Linux中用cron写的定时任务,每天固定时间生成一次,先这样吧~ 代码如下:

/\*建立数据库链接 与 实例化类\*/ $link = db\_connect(); $empire=new mysqlquery();

//header("Content-type:application/xml"); header("Content-type: text/html; charset=utf-8");

$operation = $\_GET\['operation'\]; $current\_url = explode('/',$\_SERVER\['PHP\_SELF'\]); $current\_script\_name = end($current\_url);

if($operation && $operation == "makexml") { $xml = generate\_sitemp\_xml(); $result = save\_xml('sitemap.xml',$xml); if($result) { echo '生成成功,点此查看'; } else { echo '生成失败,在来一次!'; } } else { echo '欢迎使用微笑的鱼Sitemap生成工具,请点此生成!'; }

//保存到文件 function save\_xml($filename, $text) { if (!$filename || !$text) return false; @chmod($filename,0777); if ($fp = fopen($filename, "w")) { if (@fwrite($fp, $text)) { fclose($fp); return true; } else { fclose($fp); return false; } } return false; } //生成Sitemap XML数据 function generate\_sitemp\_xml() { global $dbtbpre,$empire; $xml = ''; $xml .= '' .PHP\_EOL; $xml .= '' .PHP\_EOL; $xml .= generate\_home\_xml();//首页 $xml .= generate\_class\_xml();//栏目 $query="select \* from {$dbtbpre}ecms\_news order by id desc limit 100"; $sql=$empire->query($query); while($r=$empire->fetch($sql)) { $titleurl=sys\_ReturnBqTitleLink($r); $xml .= ' ' .PHP\_EOL; $xml .= ' '.$titleurl.'' .PHP\_EOL; $xml .= ' '.strftime('%Y-%m-%d',$r\['newstime'\]).'' .PHP\_EOL; $xml .= ' daily' .PHP\_EOL; $xml .= ' 0.8' .PHP\_EOL; $xml .= ' ' .PHP\_EOL; } $xml .= '' .PHP\_EOL; return $xml; } //生成栏目链接XML数据 function generate\_class\_xml() { global $dbtbpre,$empire,$class\_r; $xml = ''; $sql=$empire->query("SELECT \* FROM {$dbtbpre}enewsclass WHERE islast=1"); while($r=$empire->fetch($sql)) { $infor=$empire->fetch1("SELECT newstime FROM {$dbtbpre}ecms\_".$class\_r\[$r\[classid\]\]\[tbname\]." WHERE classid='$r\[classid\]' ORDER BY newstime DESC LIMIT 1"); $class\_url=sys\_ReturnBqClassname($r, 9); $xml .= ' ' .PHP\_EOL; $xml .= ' '.$class\_url.'' .PHP\_EOL; $xml .= ' '.strftime('%Y-%m-%d',time()).'' .PHP\_EOL; $xml .= ' daily' .PHP\_EOL; $xml .= ' 0.8' .PHP\_EOL; $xml .= ' ' .PHP\_EOL; } return $xml; } //生成栏目链接XML数据 function generate\_home\_xml() { $xml = ''; $xml .= ' ' .PHP\_EOL; $xml .= ' https://www.jb51.net' .PHP\_EOL; $xml .= ' '.strftime('%Y-%m-%d',time()).'' .PHP\_EOL; $xml .= ' daily' .PHP\_EOL; $xml .= ' 0.8' .PHP\_EOL; $xml .= ' ' .PHP\_EOL; return $xml;

}

/\*关闭数据库连接 与 释放类\*/ db\_close(); $empire=null; ? 推荐学习《帝国cms教程》 以上就是经典帝国CMS生成sitemap实现代码分享的详细内容,更多请关注知企PROSAAS其它相关文章! **Tags:** cms, linux, xml, 帝国CMS **Categories:** 帝国CMS ---