跳转到主内容
极星编程网:以代码为星,赴技术山海!

php生成site地图的案例

php生成sitemap的案例 PHP code
'; //下边这段代码为指定数据,但是实际需求是要通过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.=''; $fp=fopen('sitemap.xml','w+'); fwrite($fp,$content); fclose($fp); function create_item($data){//目前测试是这个函数处理之后就会数据混乱 $item="\n"; $item.="".$data['loc']."\n"; $item.="".$data['priority']."\n"; $item.="".$data['lastmod']."\n"; $item.="".$data['changefreq']."\n"; $item.="\n"; return $item; }
代码中数组赋值的地方,换成通过sql语句来做的话要怎么做?我是下边这样,但是测试输出的xml文件全都是hhh...什么的。 PHP code
$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; }

相关文章