AI编程助手
AI免费问答

php生成site地图的案例

  2016-06-13 10:42   975浏览 原创

php生成sitemap的案例

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?PHP$content='<?xml version="1.0" encoding="UTF-8"?><urlset    xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9       http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">';//下边这段代码为指定数据,但是实际需求是要通过sql来完成$data_array=array(    array(        'loc'=>'http://www.sslook.com/',        'priority'=>'1.0',        'lastmod'=>'2012-06-03T04:20:32-08:00',        'changefreq'=>'always'    ),    array(        'loc'=>'http://www.sslook.com/',        'priority'=>'0.5',        'lastmod'=>'2012-06-03T04:20:32-08:00',        'changefreq'=>'daily'    ));foreach($data_array as $data){    $content.=create_item($data);}$content.='</urlset>';$fp=fopen('sitemap.xml','w+');fwrite($fp,$content);fclose($fp);function create_item($data){//目前测试是这个函数处理之后就会数据混乱    $item="<url>\n";    $item.="<loc>".$data['loc']."</loc>\n";    $item.="<priority>".$data['priority']."</priority>\n";    $item.="<lastmod>".$data['lastmod']."</lastmod>\n";    $item.="<changefreq>".$data['changefreq']."</changefreq>\n";    $item.="</url>\n";    return $item;}

代码中数组赋值的地方,换成通过sql语句来做的话要怎么做?我是下边这样,但是测试输出的xml文件全都是hhh...什么的。
PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->$query = sql语句;$result = mysql_query($query);while($row = mysql_fetch_array($result)){    $data_array['loc']="http://zufang.sslook.com/sh/$ran/$row[0]";    $data_array['priority']='1.0';    $data_array['lastmod']='2012-12-12';    $data_array['changefreq']='weekly';    }



------解决方案--------------------
while($row = mysql_fetch_array($result))
{ $data_array['loc']="http://zufang.sslook.com/sh/$ran/$row[0]";
$data_array['priority']='1.0';
$data_array['lastmod']='2012-12-12';
$data_array['changefreq']='weekly';
}
这个while再次循环时,数组值data_array又被覆盖了,所以最终就一个值了,添加flag
改为以下,都是hhh什么意思,数据库里东西吗,发出来看一下
PHP code
$i= 0;while($row = mysql_fetch_array($result)){    $data_array[$i]['loc']="http://zufang.sslook.com/sh/$ran/$row[0]";    $data_array[$i]['priority']='1.0';    $data_array[$i]['lastmod']='2012-12-12';//这些都被你定死了    $data_array[$i]['changefreq']='weekly';    ++$i;    }<div class="clear"></div>

php免费学习视频:立即学习
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。