📄 xml001.phpt
字号:
--TEST--XML parser test, function callbacks--SKIPIF--<?php include("skipif.inc"); ?>--INI--magic_quotes_runtime=0--FILE--<?phpchdir(dirname(__FILE__));$xml_parser = xml_parser_create();xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1);xml_set_element_handler($xml_parser, "startElement", "endElement");xml_set_character_data_handler($xml_parser, "characterData");xml_set_processing_instruction_handler($xml_parser, "PIHandler");xml_set_default_handler($xml_parser, "defaultHandler");xml_set_external_entity_ref_handler($xml_parser, "externalEntityRefHandler"); if (!($fp = @fopen("xmltest.xml", "r"))) { die("could not open XML input");}while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d\n", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); }}print "parse complete\n";xml_parser_free($xml_parser);function startElement($parser, $name, $attribs){ print "\{$name"; if (sizeof($attribs)) { while (list($k, $v) = each($attribs)) { print " $k=\"$v\""; } } print "}";}function endElement($parser, $name){ print "\{/$name}";}function characterData($parser, $data){ print "\{CDATA[$data]}";}function PIHandler($parser, $target, $data){ print "\{PI[$target,$data]}";}function defaultHandler($parser, $data){ if (substr($data, 0, 1) == "&" && substr($data, -1, 1) == ";") { print "\{ENTREF[$data]}"; } else { print "\{?[$data]}"; }}function externalEntityRefHandler($parser, $openEntityNames, $base, $systemId, $publicId){ print "\{EXTENTREF[$openEntityNames,$base,$systemId,$publicId]}\n"; return true;}?>--EXPECT--{?[<?xml version="1.0" encoding="ISO-8859-1"?>]}{?[]}{?[<!DOCTYPE]}{?[ ]}{?[phptest]}{?[ ]}{?[SYSTEM]}{?[ ]}{?["notfound.dtd"]}{?[ ]}{?[[]}{?[]}{?[<!ENTITY]}{?[ ]}{?[%]}{?[ ]}{?[incent]}{?[ ]}{?[SYSTEM]}{?[ ]}{?["inc.ent"]}{?[>]}{?[]}{?[%incent;]}{?[]}{?[]]}{?[>]}{?[]}{ROOT ID="elem1"}{CDATA[]}{CDATA[ Plain text.]}{CDATA[]}{CDATA[ ]}{ELEM1}{CDATA[]}{CDATA[ ]}{?[<!-- comment -->]}{CDATA[]}{CDATA[ ]}{ELEM2}{CDATA[]}{CDATA[ ]}{?[<![CDATA[]}{CDATA[CDATA block]}{?[]]>]}{CDATA[]}{CDATA[ ]}{ELEM3}{CDATA[]}{CDATA[ ]}{ENTREF[&included-entity;]}{CDATA[]}{CDATA[ ]}{ELEM4}{CDATA[]}{CDATA[ ]}{PI[test,processing instruction ]}{CDATA[]}{CDATA[ ]}{/ELEM4}{CDATA[]}{CDATA[ ]}{/ELEM3}{CDATA[]}{CDATA[ ]}{/ELEM2}{CDATA[]}{CDATA[ ]}{/ELEM1}{CDATA[]}{/ROOT}{?[]}parse complete
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -