通過(guò)php來(lái)讀取xml的數(shù)據(jù)_PHP教程
推薦:使用PHP往Windows系統(tǒng)中添加用戶一、再Web中添加用戶 因?yàn)樘砑佑脩簦阅氵\(yùn)行PHP程序的用戶必須是管理員權(quán)限(Administrator),并且同時(shí)需要你的php.ini中的安全模式?jīng)]有打開(kāi),并且關(guān)閉函數(shù)中沒(méi)有關(guān)閉system()、exec()
今天工作上碰到一個(gè)問(wèn)題 由于我們的項(xiàng)目數(shù)據(jù)太少 所以需要從web search那邊借調(diào)數(shù)據(jù),他們只給我們提供了一個(gè)xml的接口。因此,我們需要把xml的數(shù)據(jù)轉(zhuǎn)化成html呈現(xiàn)給大家。由于項(xiàng)目是基于php的,所以就摒棄了用js來(lái)讀取xml選擇了繼續(xù)使用php。不過(guò),我以前從來(lái)沒(méi)有做過(guò)此類(lèi)的嘗試 所以找了很多網(wǎng)上資料同時(shí)參照了php的工作手冊(cè),發(fā)現(xiàn)在php4的環(huán)境下 用parser函數(shù)是一個(gè)比較好的選擇(當(dāng)然也可以用dom 但是需要對(duì)服務(wù)器重新進(jìn)行配置 php5對(duì)dom支持得比較好)。
雖然以前沒(méi)有接觸過(guò)此類(lèi)問(wèn)題,但是還是很快就解決了,不過(guò)在解決和摸索的過(guò)程中發(fā)現(xiàn)網(wǎng)上關(guān)于此類(lèi)的資料雖然不少,但是參差不齊,很多描述不是很詳細(xì),還是操作手冊(cè)比較管用。
好了,言歸正傳:
parser是php內(nèi)置的一個(gè)用來(lái)處理xml的解析器,它的工作由三個(gè)事件組成:起始標(biāo)簽、 讀取數(shù)據(jù)、結(jié)束標(biāo)簽。
也就是說(shuō)在對(duì)xml進(jìn)行處理的時(shí)候每當(dāng)遇到起始標(biāo)簽、數(shù)據(jù)和結(jié)束標(biāo)簽的時(shí)候函數(shù)會(huì)做相應(yīng)的動(dòng)作來(lái)完成對(duì)xml數(shù)據(jù)的轉(zhuǎn)換。
php中對(duì)xml讀取的相關(guān)函數(shù)的介紹:
引用:
------------------------------------------------------------------
對(duì)象 XML解析函數(shù) 描述
元素 xml_set_element_handler() 元素的開(kāi)始和結(jié)束
字符數(shù)據(jù) xml_set_character_data_handler() 字符數(shù)據(jù)的開(kāi)始
外部實(shí)體 xml_set_external_entity_ref_handler() 外部實(shí)體出現(xiàn)
未解析外部實(shí)體 xml_set_unparsed_entity_decl_handler() 未解析的外部實(shí)體出現(xiàn)
處理指令 xml_set_processing_instruction_handler() 處理指令的出現(xiàn)
記法聲明 xml_set_notation_decl_handler() 記法聲明的出現(xiàn)
默認(rèn) xml_set_default_handler() 其它沒(méi)有指定處理函數(shù)的事件
-------------------------------------------------------------------
下面就給大家舉一個(gè)小小的例子用parser函數(shù)來(lái)讀取xml數(shù)據(jù):
<?php
$parser = xml_parser_create(); //創(chuàng)建一個(gè)parser編輯器
xml_set_element_handler($parser, "startElement", "endElement");//設(shè)立標(biāo)簽觸發(fā)時(shí)的相應(yīng)函數(shù) 這里分別為startElement和endElenment
xml_set_character_data_handler($parser, "characterData");//設(shè)立數(shù)據(jù)讀取時(shí)的相應(yīng)函數(shù)
$xml_file="1.xml";//指定所要讀取的xml文件,可以是url
$filehandler = fopen($xml_file, "r");//打開(kāi)文件
while ($data = fread($filehandler, 4096))
{
xml_parse($parser, $data, feof($filehandler));
}//每次取出4096個(gè)字節(jié)進(jìn)行處理
fclose($filehandler);
xml_parser_free($parser);//關(guān)閉和釋放parser解析器
分享:利用PHP編程防范XSS跨站腳本攻擊國(guó)內(nèi)不少論壇都存在跨站腳本漏洞,國(guó)外也很多這樣的例子,甚至Google也出現(xiàn)過(guò),不過(guò)在12月初時(shí)修正了。(編者注:關(guān)于跨站腳本漏洞攻擊,讀者可參閱《詳解XSS跨站腳本攻擊》)�?缯竟艉苋菀拙�
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁(yè)面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對(duì)圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問(wèn)控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 關(guān)于PHP語(yǔ)言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國(guó)語(yǔ)言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
PHP教程Rss訂閱編程教程搜索
PHP教程推薦
- 《PHP設(shè)計(jì)模式介紹》第十四章 動(dòng)態(tài)記錄模式
- 基于flush()不能按順序輸出時(shí)的解決辦法
- php生成驗(yàn)證碼圖片實(shí)例代碼
- php合并多個(gè)數(shù)組
- 淺談PHP中用正則表達(dá)式驗(yàn)證中文的問(wèn)題
- 動(dòng)態(tài)網(wǎng)頁(yè)P(yáng)HP中引用
- Zend Framework 入門(mén)——多國(guó)語(yǔ)言支持
- PHP實(shí)例:生成靜態(tài)頁(yè)面的函數(shù)
- php筆記之:有規(guī)律大文件的讀取與寫(xiě)入的分析
- 如何寫(xiě)出好的 PHP 代碼?
- 相關(guān)鏈接:
- 教程說(shuō)明:
PHP教程-通過(guò)php來(lái)讀取xml的數(shù)據(jù)
。