<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="php如何生成站点地图 百度sitemap接口类函数实例代码" id="card1">
<p> 游客</p><p>
标题:php如何生成站点地图 百度sitemap接口类函数实例代码<br/>
正文:<br/>
本文实例讲述了php生成百度sitemap站点地图类函数的方法，分享给大家供大家参考。具体实现方法如下：问题概述：公司网站是问答百科的网站、seo工程师提出需求说根据网站的问题来生成xml文件。每个xml文件包含5000条setmap格式数据。现在线上网站大约有70w条问题，所以说基本生成140个xml文件。还有一个索引文件。比如文件的名称以数字开头的。索引文件包含的内容就是每个xml文件的路径还有名称。为什么要每个文件存储5000条数据呢，因为这是mysql的一个界限值、如果每次取多了以后可能会对线上用户访问造成影响，或者速度变慢。每个文件存储5000条数据，但是mysql selsect的时候不能每次取5000条、现在写的是每次取1000条。那这样逻辑就有点复杂。实现方法：首先取出1000条数据（可以灵活些成活的，方便以后修改），然后循环生成xml格式文件。file_puts_contens写入文件。然后再把生成的xml文件名称、取出问题的最小id、取出问题的最大id、取出问题的条数写出一个索引查询的txt文件当中，格式大概是这个样子的。0,3146886,3145887,1000发现最后面的条数是1000了吗、第一次select取出1000条数据、然后写入0.xml文件当中。把取出的xml文件名称、最小id、最大id、条数写入到索引查询txt中。第一次写入了1000条数据到0.xml、生成条数为1000。第二次查询的时候select语句会成为。 where id &amp;gt; 取出的最大id（当前mysql为正序查询、如果为倒序、改成小于） limit 1000 这样的话又取出1000、然后修改索引查询txt的最小id、最大id、生成条数加到2000。以此类推等生成条数到了5000的时候再另起一行写入索引文件、类似这样0,3146886,3145887,50001,3148886,3147887,1000这样写的话就减轻了服务器的压力。下面贴出实现代码（风格有点乱）：具体功能代码如下：代码如下:&amp;lt;?php /*  * SiteMap接口类  */   class SitemapAction extends Action{ private static $baseURL = ''; //URL地址 private static $<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1891&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1891&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1891&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1891&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1891&amp;Page=10">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1891">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1891">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>