> php教程 > php手册 > 본문

PHP操作XML做数据库的类

WBOY
풀어 주다: 2016-06-13 10:02:51
원래의
1515명이 탐색했습니다.


* example 读取数据:
*
* $xml = new xml("dbase.xml",'table');
*
* $data=$xml->xml_fetch_array();
*
* echo "

";<br>
*<br>
* print_r($data);<br>
*<br>
<br>
class xml<br>
{<br>
var $dbase; //数据库,要读取的XML文件<br>
var $dbname; //数据库名称,顶层元素,与数据库文件名称一致<br>
var $dbtable; //数据表,要取得的节点<br>
var $parser; //剖析器<br>
var $vals; //属性<br>
var $index; //索引<br>
var $dbtable_array;//节点数组<br>
var $array; //下级节点的数组<br>
var $result; //返回的结果<br>
var $querys;<br>
<br>
function xml($dbase,$dbtable)<br>
{<br>
$this->dbase=$dbase;<br>
$this->dbname=substr($dbase,strrpos($dbase,"/") 1,-4);<br>
$this->dbtable=$dbtable;<br>
$data=$this->ReadXml($this->dbase);<br>
if(!$data){<br>
die("无法读取 $this->dbname.xml");<br>
}<br>
$this->parser = xml_parser_create();<br>
xml_parser_set_option($this->parser,XML_OPTION_CASE_FOLDING,0);<br>
xml_parser_set_option($this->parser,XML_OPTION_SKIP_WHITE,1);<br>
xml_parse_into_struct($this->parser,$data,$this->vals,$this->index);<br>
xml_parser_free($this->parser);<br>
//遍历索引,筛选出要取值的节点 节点名:$dbtable<br>
foreach ($this->index as $key=>$val) {<br>
if ($key == $this->dbtable) {<br>
//取得节点数组<br>
$this->dbtable_array = $val;<br>
} else {<br>
continue;<br>
}<br>
}<br>
for ($i=0; $i dbtable_array); $i =2) {<br>
$offset = $this->dbtable_array[$i] 1; <br>
$len = $this->dbtable_array[$i 1] - $offset;<br>
//array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列。<br>
//所取节点下级数组<br>
$value=array_slice($this->vals,$offset,$len);<br>
//取得有效数组,合并为结果数组<br>
$this->array[]=$this->parseEFF($value);<br>
}<br>
return true;<br>
}<br>
//将XML文件读入并返回字符串
로그인 후 복사
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿