php 生成sitemap xml文件(网站地图)
最近帮朋友优化一个网站,想生成xml格式的sitemap然后提交给搜索引擎,利用php的simpleXML类就很容易实现了。贴一下代码块:
//sitemap_data.php包含了网站所有链接的信息,直接贴出输出的数据,源码就不贴了array(22){[0]=>array(1){["loc"]=>string(32)"http://www.ibxg.com.cn/index.php"}[1]=>array(1){["loc"]=>string(32)"http://www.ibxg.com.cn/about.php"}[2]=>array(1){["loc"]=>string(55)"http://www.ibxg.com.cn/news_center.php?news_center_id=1"}[3]=>array(1){["loc"]=>string(55)"http://www.ibxg.com.cn/news_center.php?news_center_id=2"}[4]=>array(1){["loc"]=>string(43)"http://www.ibxg.com.cn/product.php?cat_id=1"}[5]=>array(1){["loc"]=>string(43)"http://www.ibxg.com.cn/product.php?cat_id=2"}[6]=>array(1){["loc"]=>string(43)"http://www.ibxg.com.cn/product.php?cat_id=3"}[7]=>array(1){["loc"]=>string(43)"http://www.ibxg.com.cn/product.php?cat_id=4"}[8]=>array(1){["loc"]=>string(43)"http://www.ibxg.com.cn/product.php?cat_id=5"}[9]=>array(1){["loc"]=>string(43)"http://www.ibxg.com.cn/product.php?cat_id=6"}[10]=>array(1){["loc"]=>string(43)"http://www.ibxg.com.cn/product.php?cat_id=7"}[11]=>array(1){["loc"]=>string(43)"http://www.ibxg.com.cn/product.php?cat_id=8"}[12]=>array(1){["loc"]=>string(43)"http://www.ibxg.com.cn/product.php?cat_id=9"}[13]=>array(1){["loc"]=>string(32)"http://www.ibxg.com.cn/order.php"}[14]=>array(1){["loc"]=>string(47)"http://www.ibxg.com.cn/project.php?project_id=1"}[15]=>array(1){["loc"]=>string(47)"http://www.ibxg.com.cn/project.php?project_id=2"}[16]=>array(1){["loc"]=>string(47)"http://www.ibxg.com.cn/project.php?project_id=3"}[17]=>array(1){["loc"]=>string(47)"http://www.ibxg.com.cn/project.php?project_id=4"}[18]=>array(1){["loc"]=>string(47)"http://www.ibxg.com.cn/project.php?project_id=5"}[19]=>array(1){["loc"]=>string(47)"http://www.ibxg.com.cn/project.php?project_id=6"}[20]=>array(1){["loc"]=>string(47)"http://www.ibxg.com.cn/project.php?project_id=7"}[21]=>array(1){["loc"]=>string(34)"http://www.ibxg.com.cn/contact.php"}}
sitemap_xml.php文件
<?phpheader('Content-Type:text/xml');//这行很重要,php默认输出text/html格式的文件,所//以这里明确告诉浏览器输出的格式为xml,不然浏览器显示不出xml的格式require_once('sitemap_data.php');//把数据源加载进来$sitemap=$sitemap;//这里要按照sitemap的格式构造出xml的文件,urlseturlloc是规定必须有的标签$xml_wrapper=<<<XML<?xmlversion='1.0'encoding='utf-8'?><urlsetxmlns="http://www.sitemaps.org/schemas/sitemap/0.9"></urlset>XML;//$xml=simplexml_load_string($xml_wrapper);$xml=newSimpleXMLElement($xml_wrapper);foreach($sitemapas$data){$item=$xml->addChild('url');//使用addChild添加节点if(is_array($data)){foreach($dataas$key=>$row){$node=$item->addChild($key,$row);if(isset($attribute_array[$key])&&is_array($attribute_array[$key])){foreach($attribute_array[$key]as$akey=>$aval){//设置属性值,我这里为空$node->addAttribute($akey,$aval);}}}}}echo$xml->asXML();//用asXML方法输出xml,默认只构造不输出。?>
另外网上也找到其他方法比如DOMDocument来构造xml,但通过比较使用simpleXML类是最省代码,实现起来也很简单。
其他方法可以参考这文章
http://www.phppan.com/2009/10/use-php-create-xml-file/
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。