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; }