日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

PHP 和 XML: 使用expat函數(二)

瀏覽:159日期:2023-12-15 08:28:18
;PHP 和 XML: 使用expat函數(二)讓我們看一下實際處理這個文檔的PHP代碼。 /*NewsBoy : News system for the web written in PHP by Justin Grant (Web: jusgrant.cjb.net or justin.host.za.net Mail: justin@glendale.net)25 March V0.0.2 Converted Newsboy to a PHP class, allowing the layout to be easily modified. Also added made the HTML that is genrated a little easier to read.24 March V0.0.1 Just completed the intial version, very rough and basic.*/ class newsboy { var $xml_parser; var $xml_file; var $html; var $open_tag ; var $close_tag ; //Class Constructor function newsboy() { $this->xml_parser = ""$this->xml_file = ""$this->html = ""$this->open_tag = array( //these are the default settings but they are quite easy to modify "NEWSBOY" => "nn", "STORY" => " ", "DATE" => "", "SLUG" => " ", "TEXT" => "", "PIC" => "", "NEWLINE" => "" ); $this->close_tag = array( "NEWSBOY" => " nnn", "STORY" => "", "DATE" => "", "SLUG" => " ", "TEXT" => "n", "PIC" => " " " ); } //Class Destructor (has to be invoked manually as PHP does not support destructors) function destroy() { xml_parser_free($this->xml_parser); } //Class Members function concat($str) { $this->html .= $str; } function startElement($parser, $name, $attrs) { //global $open_tag; if ($format= $this->open_tag[$name]) { $this->html .= $format; } } function endElement($parser, $name) { global $close_tag; if ($format= $this->close_tag[$name]) { $this->html .= $format; } } function characterData($parser, $data) { $this->html .= $data; } /* function PIHandler($parser, $target, $data) { //switch (strtolower($target)){ // case "php": eval($data); // break; //} }*/ function parse() { $this->xml_parser = xml_parser_create(); xml_set_object($this->xml_parser, &$this); // use case-folding so we are sure to find the tag in $map_array xml_parser_set_option($this->xml_parser, XML_OPTION_CASE_FOLDING, true); xml_set_element_handler($this->xml_parser, "startElement", "endElement"); xml_set_character_data_handler($this->xml_parser, "characterData");//xml_set_processing_instruction_handler($this->xml_parser, "PIHandler"); if (!($fp = fopen($this->xml_file, "r"))) { die("could not open XML input"); } while ($data = fread($fp, 4096)) { if (!xml_parse($this->xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($this->xml_parser)), xml_get_current_line_number($this->xml_parser))); } } }} ?> -------------------------------------------------------------------------------- 在這個類的構造函數中,我創建了打開與關閉兩個標記數組。數組的關鍵字與我后面將要分析的標記是 一樣的,并且它們相應的值包含格式化打開與關閉標記的HTML代碼。 我定義了一個簡單的類析構函數用來當我們不再需要它時釋放XML 分析器。這個函數不得不手工調用, 因為PHP不支持當一個對象釋放時自動調用類的析構函數。 然后我定義了在XML文檔中用來分析打開和關閉標記的主回調方法。我也定義了一個數據分析方法, 將 用于當打開和關閉標記中有數據時,對數據進行簡單的格式化,后面我將向你演示如何將這些回調方法注冊 到分析器中。 在startElement和closeElement(當分析到一個打開或關閉標專時被分別調用)中使用 標記的名字 作為索引鍵值對相應的數組進行查詢。如果那個鍵值存在,則返回值并且追加到類的'html' 屬性的后面。 'html'屬性將在以后我們真正顯示文檔內容的時候使用。 characterData方法簡單地將標記之間的值加到類的html屬性的后面。 被注釋起來的叫PIHandler的方法是一個回調函數,我還未曾實現它。如果它存在的話,它將直接在XML 文檔中處理php腳本。 現在,讓我解釋一下主要的分析方法的調用,你猜一猜,parse()!!! 第一行調用了函數xml_parser_create(),它將返回一個expat的xml分析器的實例,并且被保存在類的 屬性&this->xml_parser中。 下一步,我們需要用函數xml_set_object()來注冊一個類方法的回調函數。 我是這樣使用的,xml_set_object($this->xml_parser, &$this)。我在第一個參數中指定了用 來保存xml 分析器的類屬性,然后在第二個參數,我指定了PHP對象的實例地址。這個可以讓分析器 知道全 部將要注冊的回調函數,是在那個地址上指定類的實際的方法。這就象c或c++中的一個'引用傳遞',也有人 簡單地叫做'引用變量'。 在下一行,我調用了xml_parser_set_option()設置了一個xml分析器的屬性,使用大小寫折疊( case folding)。大小寫折疊只是告訴分析器知道,當我分析我的XML文檔時我并不關心大小寫敏感,但是 如果你 想使用大小寫敏感來定義兩個不同的標記,如或,你可以不設置它。 通過使用xml_set_element_handler(),我指定了用于開始和結束標記的回調函數,名字是 "startElement"和"endElement"。 接著,我使用xml_set_character_data_handler()來指定字符數據的處理句柄為名為 characterData()的回調函數。被注釋的函數調用,xml_set_processing_instruction_handler(), 是一個我用于注冊函數 PIHandler()的調用。PIHandler可以被包括在XML文檔中處理php代碼。 其它的代碼只是很簡單地讀XML文件并且分析它。如果一個錯誤發生,那么錯誤明細將返回,包括錯誤 發生的行號。;;
標簽: PHP
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品免费av一区二区三区| 久久国产尿小便嘘嘘| 日本欧美韩国一区三区| 夜久久久久久| 尤物在线精品| 免费人成精品欧美精品| 日韩一区二区久久| 五月天久久久| 蜜臀精品久久久久久蜜臀| 久久亚洲二区| 日本在线视频一区二区| 日韩精品一区二区三区免费视频| 亚洲综合福利| 国产福利资源一区| 日韩精品高清不卡| 国产精品一级| 成人精品动漫一区二区三区| 麻豆视频在线看| 91精品91| 日韩国产在线观看一区| 国产精品成人国产| 欧美香蕉视频| 视频一区二区中文字幕| 日本一区福利在线| 久久国产精品免费一区二区三区| 国产精品白丝一区二区三区| 国产成人免费| 婷婷激情图片久久| 日韩中文字幕1| 亚洲一区亚洲| 麻豆久久久久久| 国产一区欧美| 国产精品免费不| 99久久亚洲精品蜜臀| 天堂va在线高清一区| 久久uomeier| 日韩高清欧美激情| 成人精品亚洲| 日本欧美一区| 999国产精品999久久久久久| 亚洲狼人精品一区二区三区| 国产aⅴ精品一区二区四区| 欧美特黄a级高清免费大片a级| 国产亚洲精品美女久久| 高清一区二区三区av| 亚洲尤物av| 韩国三级一区| 国产探花一区二区| 免费精品国产| 国语精品一区| 国产日韩1区| 亚洲三级观看| 久久午夜精品一区二区| 激情欧美国产欧美| 91日韩免费| 麻豆一区二区99久久久久| 亚洲视频二区| 狠狠爱成人网| 欧美中文一区二区| 久久av免费| 四虎在线精品| 蜜臀久久99精品久久久久宅男| 欧美日韩在线二区| 亚洲天堂av影院| 国产一区二区三区国产精品| 国产精品永久| 国产精品传媒麻豆hd| 国产欧美日韩精品高清二区综合区| 日韩在线a电影| 亚洲我射av| 日韩三级精品| 久久精品99久久久| 久久国产婷婷国产香蕉| 日本少妇精品亚洲第一区| 伊人久久亚洲热| 国产精品毛片| 亚洲麻豆一区| 日韩综合一区二区| 国产亚洲毛片在线| 中文精品视频| 夜夜精品视频| 亚洲免费成人av在线| 日本 国产 欧美色综合| 麻豆亚洲精品| 一区二区三区四区日韩| 奇米狠狠一区二区三区| 日本va欧美va瓶| 欧美精品中文字幕亚洲专区| 青草av.久久免费一区| 亚洲精品第一| 日韩高清在线一区| 欧美在线91| 97精品资源在线观看| 一区二区三区网站| 日本欧美在线| 国产一区二区三区天码| 成人羞羞在线观看网站| 久色成人在线| 国产精久久久| 久久久久久久久久久妇女| 久久成人高清| 日韩亚洲在线| 国产精品一区二区99| 人人精品亚洲| 日韩精品一级中文字幕精品视频免费观看| 中文字幕av一区二区三区人| 美女高潮久久久| 91精品国产成人观看| 综合亚洲自拍| 日本欧美韩国一区三区| 欧美激情麻豆| 午夜久久福利| 成人在线视频免费看| 丝袜美腿亚洲一区二区图片| 国产福利资源一区| 夜夜精品视频| 精品一区二区三区亚洲 | 欧美在线精品一区| 福利欧美精品在线| 一区二区三区网站| 久久久久.com| 麻豆精品av| 亚洲精品高潮| 视频在线观看一区二区三区| 超碰超碰人人人人精品| 日韩一区二区三区精品| 亚洲五月婷婷| 樱桃视频成人在线观看| 国产毛片精品| 中文字幕一区二区精品区| sm捆绑调教国产免费网站在线观看| 视频一区中文字幕国产| 日韩欧美字幕| 国产精品成人国产| 日产欧产美韩系列久久99| 日韩成人亚洲| 国产专区一区| 日韩欧美精品一区| 精品视频一二| 久久午夜影院| 国产精品hd| 极品av在线| 人人草在线视频| 日韩成人综合| 日韩欧美综合| 999久久久国产精品| 女人av一区| 国产一区二区色噜噜| 国产精品a级| 精品国产a一区二区三区v免费| 久久精品99国产国产精| 青青草精品视频| 国产精品magnet| 蜜桃精品视频| 少妇久久久久| 亚洲在线电影| 国产精品亚洲二区| а√天堂8资源中文在线| 日韩伦理一区| 国产精品毛片在线| 国产视频一区二区在线播放| 国产精品对白久久久久粗| 日本午夜精品视频在线观看| 国产精品一区二区免费福利视频| 久久xxx视频| 久久婷婷久久| 亚洲日本国产| 视频在线不卡免费观看| 国产亚洲一区二区手机在线观看| 亚洲欧美网站| 欧美a在线观看| 国产v综合v| 欧美日韩国产欧| 国产日韩一区二区三区在线播放| 国产精品麻豆久久| 99免费精品| 日本精品国产| 成人羞羞视频播放网站| 欧美特黄一区| 国精品产品一区| 热久久久久久久| 日韩中文字幕| 国产精品亚洲综合久久| 天堂网在线观看国产精品| 久久国内精品视频| 日韩一区三区| 中文字幕成人| 九九综合九九| 欧美天堂一区二区| 亚洲激情中文| 国产精品久久久久久久久久久久久久久 | 亚洲永久av| 日韩极品在线观看| 免费毛片在线不卡| sm捆绑调教国产免费网站在线观看| 久久xxxx| 一区在线观看| 成人日韩在线| 国产成人精选| 国产调教精品|