80端口-80勃客♂
80端口悄悄提示:数据载入中……  
80端口悄悄提示:数据载入中……
时间记忆
80端口悄悄提示:数据载入中……
勃客管理
80端口悄悄提示:数据载入中……
用户公告
80端口悄悄提示:数据载入中……
我的相册
最新日志
80端口悄悄提示:数据载入中……
最新评论
80端口悄悄提示:数据载入中……
最新回复
80端口悄悄提示:数据载入中……
我的好友
站点信息
80端口悄悄提示:数据载入中……
 
2008-4-7 16:05:00
php输出到xml的俩方法
PHP代码
  1. class array2xml {  
  2.     var $xml;  
  3.     function array2xml($array,$encoding='utf-8') {  
  4.           $this->xml='<?xml version="1.0" encoding="'.$encoding.'"?><root>';  
  5.           $this->xml.=$this->_array2xml($array);  
  6.            
  7.     }  
  8.     function getXml() {  
  9.           return $this->xml.'</root>';  
  10.     }  
  11.       function _array2xml($array) {  
  12.                 foreach($array as $key=>$val) {  
  13.                         $num=is_numeric($key);  
  14.                         $num&&$key="item id=\"$key\"";  
  15.                         $xml.="<$key>";  
  16.                         $num||$xml.="<![CDATA[";  
  17.                         $xml.=is_array($val)?$this->_array2xml($val):$val;  
  18.                         list($key,)=explode(' ',$key);  
  19.                         $num||$xml.="]]></$key>";  
  20.                         $num&&$xml.="</item>";  
  21.                 }  
  22.                 return $xml;  
  23.         }  
  24. }  

 实例:
 

PHP代码
  1. function responseXML($sql)  
  2. {  
  3.     global $DB;  
  4.     $query=$DB->query($sql);    
  5.     $arr=array();  
  6.     while($r=$DB->fetch_array($query)){  
  7.     $arr[]=$r;  
  8.     }  
  9.     unset($r);  
  10.     $DB->free_result($query);  
  11.     if(count($arr)>0){  
  12.     $ax=new array2xml($arr);  
  13.     exit($ax->getXML());  
  14.     }else{  
  15.     out_ok('null');  
  16.     }  
  17. }  


方法二: 输出xml
 

PHP代码
  1. <?   
  2. $link=mysql_connect("localhost","root","");  
  3. mysql_select_db("marry");  
  4. if($link){  
  5. $result=mysql_query("select * from marry_member");  
  6. $result1=mysql_query("show columns from marry_member");  
  7. $columns=array();  
  8. while($r=mysql_fetch_row($result1)){  
  9. $columns[]=$r[0];  
  10. }  
  11. mysql_free_result($result1);  
  12. header("content-type:text/xml");    
  13.   echo   "<?xml   version='1.0'   encoding='UTF-8'?>";    
  14.   echo   "<xml>";  
  15.   while($arr=mysql_fetch_array($result))    
  16.   {    
  17.           echo   "<row";    
  18.           $i   =   0;    
  19.           for($j=0;$j<count($columns);$j++){  
  20.               echo   " ".$columns[$j]."='".$arr[$i]."' ";    
  21.               $i++;    
  22.            }  
  23.            reset($columns);  
  24.             echo   "/>";    
  25.   }    
  26.   echo   "</xml>";    
  27.     
  28.   mysql_free_result($result);    
  29.   }  
  30.   ?>  
80 | 阅读全文 | 回复(0) | 引用通告 | 编辑
发表评论:
80端口悄悄提示:数据载入中……
http://www.waasai.com/blog/f/80/index.html
Link to waasai.com Home