❶ 在php中將數組轉換為XML格式
php數組格式:
Array to XML:
通裂瞎過使用PHP的擴展SimpleXML,我們將uses_array轉換含源仔為xml格式。
保存成功的談汪XML文件:
The users.xml file contains the following xml.
附註:
Insert XML Into Databse
If you want to save the XML into the database, then replace the $xml_file variable line with the following code line. Now you can insert $xml_file variable into the database.
❷ PHP 里如何實現數組轉 xml 並且格式化
simplexml_load_string可以把xml解析成對象,然後可以用var_mp進行解析。\r\nphp內部庫並沒有包含直接把xml解析成數組的模塊。\r\n而且xml本來包含節點概念,解析成對象以後可以直接訪問每一個節點,而數組相對就要難以理解的多。\r\n因此解析成數組並不比解析成對象有多少優勢。\r\n如果你對數組實在有需求的話,可以自己寫一個庫,並不會太難。
❸ php webservice 返回 xml 格式保存及調用
寫個xml生成類
將扒肢跡數組傳進去
生成xml文件春並就可以飢輪
送你個 改改
<?php
class xml {
private $data;
private $encoding='utf-8'; //XML文件編碼
private $root='yee';
/*---------------------------------------
* 實例化時傳遞參數
* $data array 執行編譯的數據
*---------------------------------------*/
public function __construct($data=''){
$this->data=$data;
if( $this->data=='' ){
exit('請傳遞參數');
}
}
public function __toString(){
return $this->get_xml();
}
/*----------------------------------------
* 生成XML
*----------------------------------------*/
public function get_xml() {
$xml = "<?xml version=\"1.0\" encoding=\"{$this->encoding}\"?>";
$xml.= "<{$this->root}>";
$xml.= $this->make_xmk($this->data);
$xml.= "</{$this->root}>";
return $xml;
}
/*-------------------------------------
* 將數組或對象轉換成XML-DOM格式
*-------------------------------------*/
protected function make_xmk($data) {
$xml = '';
foreach ($data as $key => $value) {
//如果$key是一個數字,前面加item
(is_numeric($key)) ? $key='item'.$key : $key ;
$xml.="<{$key}>";
//如果遍歷的$value還是一個array,回調
$xml.= ( is_array($value) || is_object($value)) ? $this->make_xmk($value) : $value;
$xml.="</{$key}>";
}
return $xml;
}
/*-----------------------------------------
* 創建XML文件,成功後返迴文件路徑
* $path 文件路徑
* $filename 文件名
*-----------------------------------------*/
public function touch_xml($path='',$filename=''){
$path=$_SERVER['DOCUMENT_ROOT'].$path;
if($path{strlen($path)-1} != '/')$path.='/';
if(!is_dir($path))return '不是一個目錄';
$filename=$path.$filename;
touch ($filename);
chmod($filename,0777);
if(is_writeable($filename)){
if($handle=fopen($filename,'w+')){
if(fwrite($handle,$this->get_xml()) === false){
return '文件'.$filename.'寫入失敗';
}else{
return $filename; //返迴路徑
}
}else{
return '不能打開文件'.$filename;
}
}else{
return '文件'.$filename.'不可寫';
}
}
}
?>
❹ php如何生成xml文件
<?php
#使用dom生成xml,注意生成的xml中會沒有空格。
$dom=new DOMDocument('1.0','utf-8');
$path="test.xml"; // $path 為xml文件的存儲路徑。
$mole=$dom->createElement('newmole');// root node
$dom->appendChild($mole);
$year=$dom->createElement('year'); // add attribute node
$name=$dom->createAttribute('name');
$name->nodeValue="最新動態";
$year->setAttributeNode($name);
$mole->appendChild($year);
$news=$dom->createElement('news');
$year->appendChild($news);
$date=$dom->createElement('date');
$date_value=$dom->createTextNode('01-24');
$date->appendChild($date_value);
$news->appendChild($date);
$title=$dom->createElement('title');
$title_value=$dom->createTextNode('<![CDATA[最新動態]]>');
$title->appendChild($title_value);
$news->appendChild($title);
$info=$dom->createElement('info');
$info_value=$dom->createTextNode('<![CDATA[ 表面採用進口楸木木皮拼貼成精美的拼花,自然清晰的木材紋理得到完美的呈現,各種材質的合理搭配締造了雅意系列精緻的傢具產品。
]]>');
$info->appendChild($info_value);
$news->appendChild($info);
echo $dom->saveXML();
$dom->save($path);
?>
❺ 如何用php從資料庫讀取數據並生成xml文件
我的思路是,直接使用動態的xml,讓flash讀取這個文檔,這樣就不用實時的去生成xml文件了。當然,這個xml文件是.php格式的,所以你必須在flash中吧讀取的文件地址改成php的,就跟你寫一個php頁面一樣,不同的是這個php文件輸出的內容是一個xml格式的文本。
比如你現在建立文件 xml.php
<?php
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>
<gallery>
<settings>";
//若此處也有動態信息 按需要進行調用
echo"</settings>
<items>";
//在此循環你的圖片數據
$data = ??
while( $data ) {
echo "<item source=\"".$data['source']."\" description=\"".$data['description']."\" />";
}
echo '</items>';
?>
❻ PHP生成和獲取XML格式數據
在做數據介面時 我們通常要獲取第三方數據介面或者給第三方提供數據介面 而這些數據格式通常是以XML或者JSON格式傳輸 本文將介紹如何使用PHP生成XML格式數據供第三方調用以及如何獲取第三方提供的XML數據
生成XML格式數據
我們假設系統中有一張學生信息表student 需要提供給第三方調用 並有id name sex age分別記錄學生的姓名 性別 年齡等信息
CREATE TABLE `student` (
`id` int( ) NOT NULL auto_increment
`name` varchar( ) NOT NULL
`sex` varchar( ) NOT NULL
`age` *** allint( ) NOT NULL default
PRIMARY KEY (`id`)
大森) ENGINE=MyISAM DEFAULT CHARSET=utf ;
首先 建立createXML php文件 先連接資料庫 獲取數據
include_once ( connect php ) //連接資料庫
$sql = select * from student ;
$result = mysql_query($sql) or die( Invalid query: mysql_error())
while ($row = mysql_fetch_array($result)) {
$arr[] = array(
name => $row[ name ]
sex => $row[ sex ]
age => $row[ age ]
)
}
這個時候 數據就保存在$arr中 你可以使用print_r列印下數據測試
接著 建立xml 循環數組姿埋 將數據寫入到xml對應的節點中
$doc = new DOMDocument( utf ) // 聲明版本和編碼
$doc >formatOutput = true;
$r = $doc >createElement( root )
$doc >appendChild($r)
foreach (滾冊畝$arr as $dat) {
$b = $doc >createElement( data )
$name = $doc >createElement( name )
$name >appendChild($doc >createTextNode($dat[ name ]))
$b >appendChild($name)
$sex = $doc >createElement( sex )
$sex >appendChild($doc >createTextNode($dat[ sex ]))
$b >appendChild($sex)
$age = $doc >createElement( age )
$age >appendChild($doc >createTextNode($dat[ age ]))
$b >appendChild($age)
$r >appendChild($b)
}
echo $doc >saveXML()
我們調用了PHP內置的類DOMDocument來處理與生成xml 最終生成的xml格式請點擊這里看效果
<?xml version= encoding= utf ?>
<root>
<data>
<name>李王皓</name>
<sex>男</sex>
<age> </age>
</data>
…
</root>
獲取XML格式數據
現在我們假設要從第三方獲取學生信息 數據格式是XML 我們需要使用PHP解析XML 然後將解析後的數據顯示或者寫入本地資料庫 而這里關鍵的一步是解析XML
PHP有很多中方法可以解析XML 其中PHP提供了內置的XMLReader類可以循序地瀏覽過xml檔案的節點 你可以想像成游標走過整份文件的節點 並抓取需要的內容 使用XMLReader是高效的 尤其是讀取非常大的xml數據 相對其他方法 使用XMLReader消耗內存非常少
header( Content type:text/; Charset=utf )
$url = // helloweba /demo/importXML/createXML php ;
$reader = new XMLReader() //實例化XMLReader
$reader >open($url) //獲取xml
$i= ;
while ($reader >read()) {
if ($reader >nodeType == XMLReader::TEXT) { //判斷node類型
$m = $i% ;
if($m== )
$name = $reader >value; //讀取node值
if($m== )
$sex = $reader >value;
if($m== ){
$age = $reader >value;
$arr[] = array(
name => $name
sex => $sex
age => $age
)
}
$i++;
}
}
//print_r($arr)
lishixin/Article/program/PHP/201311/21636
❼ PHP如何將數組寫入XML請直接提供代碼。感謝!!!
<?php
$imgdir = '你存放圖片的文件夾';
$logfile = '你要寫入的文件名';
$submit = $_POST['submit'];
if($submit == 'write'){
include('lib/write.class.php');
$wt = new writeTo();
$wt->while($imgdir,$logfile);
}
?>
<input type = 'submit' name = 'submit' value = 'write'>
這個是前提文件
下面的是類文件
<?php
class writeTo{
function isjpg($filename){
/*
用來判斷是否是 .jpg結尾的文件 由於本機器無JPG 所以使用PHP
代替了JPG 你自己使用的時候請自行替換
*/
if(preg_match('/\.php$/',$filename)){
return true;
}
false;
}
function listjpg($dir){//查看文件夾內的所有JPG文件名並存入數組
$arr = array();
if(is_dir($dir)){
$dp=dir($dir);
while($file=$dp->read()){
if($this->isjpg($file)){
$arr[substr($file,0,(strlen($file)-4))] = $file;
}
}
}
$dp->close();
return $arr;
}
function write($dir,$filename){//利用前面生成的數字重寫文件
if($link = fopen($filename,'w+')){
//由於使用W+所以如果存在該文件請給予讀寫許可權 如不存在則程序自動建立
$str = "<?xml version='1.0' encoding='utf-8'?>\n";
$str .= " <path>\n";
$arr = $this->listjpg($dir);
foreach($arr as $key => $v){
$str .= " <url info=".$key.">pic/".$v."</url>\n";
}
$str .= " <\path>\n";
if(fwrite($link,$str)){
fclose($link);
return true;
}
return false;
}
return false;
}
}