php如何新建xml文件,PHP新建XML打开XML读取XML怎么写
下面青島星網跟大家分享一個PHP操作XML類,其中包括了大量注釋,用于在PHP中執行xml的相關操作,比如新建一個XML文件,打開一個XML文件,讀取其中的內容等。
define("enter",chr(13).chr(10));
class DATA_XML
{
var $parser; //XML解釋器
var $tags; //XML標簽
var $on;
var $root; //根元素
var $Data = array(); //元素數組
function DATA_XML($filename,$root) //類初始函數 filename文件名,root根元素
{
$this->root = $root; //初始根元素
$this->parser = xml_parser_create();//創建解釋對象
xml_set_object(&$this->parser,&$this);//設置對象
xml_set_element_handler($this->parser,"tag_on","tag_off");//設置元素管理函數
xml_set_character_data_handler($this->parser,"getdata"); //設置數據管理事件
xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0); //要求嚴格區分大小寫
if( file_exists($filename) )
{//若文件存在
$fp = fopen($filename,"r"); // 只讀打開
$c = fread($fp,filesize($filename)); //讀取數據
fclose($fp);//關閉
$this->parse($c); //設置解釋對象
}else{
echo "eeeee"; //調試用的,可以去掉else
}
}
function parse($data)//解釋函數
{
xml_parse($this->parser,$data);
}
function tag_on($parser,$tag,$attributes)//發現元素觸發函數
{
$this->on = true; //已經觸發過
$this->tags = $tag;
}
function tag_off($parser,$tag) //元素結素函數
{
$this->on = false; //元素結素
}
function getdata($parser,$cdata) //取出元素
{
if($this->on && $this->tags!=$this->root)
{//驗證一下比較好,(現在是否為元素的開始,并且不是根元素?)
$this->Data[$this->tags]=trim($cdata);//用標簽做數組表,并給這個數組元素付上數據
}
}
function check($str)
{//檢查字符
if( strlen($str)<1 )//如果是空字符
return ' ';//返回 ' '
else
return $str;//否則原路返回(不然XML好象會不做結束標記)
}
function saveas($filename)//另存為
{
$c='<?xml version="1.0" encoding="gb2312"?>'.enter;//enter是define("enter",chr(13).chr(10));
$c.="root.">".enter;//設定根元素
for( reset($this->Data);$i=key($this->Data);next($this->Data))
{//開始列出所有數據
$c.= "".$this->check($this->Data[$i])."".$i.">".enter;
//用數組表名做元素標簽,并加上數據內容
}
$c.="".$this->root.">".enter;//結束標簽
$fp = fopen( $filename , "w" );//寫入文件
fwrite($fp,$c);
fclose($fp);
}
}
類的用法示例,請看下面的代碼<?php
//新鍵一個XML文件
$xml = new DATA_XML(路徑."arm.xml","DATA"/*根元素*/);
$xml->Data["UserName"]="ASP";
$xml->Data["Nick"]="PHP";
$xml->saveas( 路徑."arm.xml");
unset( $xml );
//讀取一個XML文件
$xml = new DATA_XML(路徑."arm.xml","DATA");
echo $xml->Data["Nick"];//顯示一下?
$xml->Data["Nick"]="PHP";//UPDATE
$xml->Data["Master"]="asp";//INSERT INTO
$xml->saveas(路徑."arm.xml");//另存為覆蓋本身
?>
總結
以上是生活随笔為你收集整理的php如何新建xml文件,PHP新建XML打开XML读取XML怎么写的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米路由器192.168.31.1无法访
- 下一篇: php fopen 找不着文件,fope