diff options
Diffstat (limited to 'ext/xmlreader')
33 files changed, 69 insertions, 323 deletions
diff --git a/ext/xmlreader/TODO b/ext/xmlreader/TODO deleted file mode 100644 index 744c56192a..0000000000 --- a/ext/xmlreader/TODO +++ /dev/null @@ -1,8 +0,0 @@ -- Implement functions to support PHP 4 - -- Refactor internals once libxml 2.6.x is minimum requirement for PHP 5 - use new api for creating the xmlTextReaderPtr - -- Add Custom Error Handling - - diff --git a/ext/xmlreader/config.m4 b/ext/xmlreader/config.m4 index 4ada113a00..d9dacf99ae 100644 --- a/ext/xmlreader/config.m4 +++ b/ext/xmlreader/config.m4 @@ -1,6 +1,4 @@ -dnl -dnl $Id$ -dnl +dnl config.m4 for extension xmlreader PHP_ARG_ENABLE(xmlreader, whether to enable XMLReader support, [ --disable-xmlreader Disable XMLReader support], yes) diff --git a/ext/xmlreader/config.w32 b/ext/xmlreader/config.w32 index 7fb1f8494b..b9ab7dbe03 100644 --- a/ext/xmlreader/config.w32 +++ b/ext/xmlreader/config.w32 @@ -1,4 +1,3 @@ -// $Id$ // vim:ft=javascript ARG_ENABLE("xmlreader", "XMLReader support", "yes"); diff --git a/ext/xmlreader/examples/dtdexample.dtd b/ext/xmlreader/examples/dtdexample.dtd deleted file mode 100644 index ce53f0bc18..0000000000 --- a/ext/xmlreader/examples/dtdexample.dtd +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!ELEMENT LIST (MOVIE+)> -<!ELEMENT MOVIE (TITLE, ORGTITLE, LOC, INFO)> -<!ATTLIST MOVIE ID ID #REQUIRED> -<!ELEMENT TITLE (#PCDATA)> -<!ELEMENT ORGTITLE (#PCDATA)> -<!ELEMENT LOC (#PCDATA)> -<!ELEMENT INFO (#PCDATA)> diff --git a/ext/xmlreader/examples/dtdexample.xml b/ext/xmlreader/examples/dtdexample.xml deleted file mode 100644 index 052889c05d..0000000000 --- a/ext/xmlreader/examples/dtdexample.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE LIST SYSTEM "dtdexample.dtd"> -<LIST> -<MOVIE ID="x200338360"> -<TITLE>Move Title 1</TITLE> -<ORGTITLE/><LOC>Location 1</LOC> -<INFO/> -</MOVIE> -<MOVIE ID="m200338361"> -<TITLE>Move Title 2</TITLE> -<ORGTITLE/> -<LOC>Location 2</LOC> -<INFO/> -</MOVIE> -</LIST> diff --git a/ext/xmlreader/examples/relaxNG.rng b/ext/xmlreader/examples/relaxNG.rng deleted file mode 100644 index f4357e04ef..0000000000 --- a/ext/xmlreader/examples/relaxNG.rng +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<grammar xmlns="http://relaxng.org/ns/structure/1.0" - datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> - -<include href="relaxNG2.rng"> -<define name="TEI.prose"><ref name="INCLUDE"/></define> -</include> -</grammar> - - - diff --git a/ext/xmlreader/examples/relaxNG.xml b/ext/xmlreader/examples/relaxNG.xml deleted file mode 100644 index 5d9f31fee0..0000000000 --- a/ext/xmlreader/examples/relaxNG.xml +++ /dev/null @@ -1 +0,0 @@ -<TEI.2>hello</TEI.2> diff --git a/ext/xmlreader/examples/relaxNG2.rng b/ext/xmlreader/examples/relaxNG2.rng deleted file mode 100644 index 4adae7b151..0000000000 --- a/ext/xmlreader/examples/relaxNG2.rng +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:t="http://www.thaiopensource.com/ns/annotations" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> - - <start> - <ref name="TEI.2"/> - </start> - <define name="IGNORE"> - <notAllowed/> - </define> - <define name="INCLUDE"> - <empty/> - </define> - - - <include href="relaxNG3.rng"/> - - <define name="TEI.2"> - <element name="TEI.2"> - <text/> - </element> - </define> - -</grammar>
\ No newline at end of file diff --git a/ext/xmlreader/examples/relaxNG3.rng b/ext/xmlreader/examples/relaxNG3.rng deleted file mode 100644 index 73e1eb6165..0000000000 --- a/ext/xmlreader/examples/relaxNG3.rng +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:t="http://www.thaiopensource.com/ns/annotations" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> - - <define name="TEI.prose" combine="interleave"> - <ref name="IGNORE"/> - </define> - -</grammar>
\ No newline at end of file diff --git a/ext/xmlreader/examples/xmlreader.xml b/ext/xmlreader/examples/xmlreader.xml deleted file mode 100644 index 4c53743de6..0000000000 --- a/ext/xmlreader/examples/xmlreader.xml +++ /dev/null @@ -1,10 +0,0 @@ -<books> - <book num="1"> - <title>The Grapes of Wrath</title> - <author>John Steinbeck</author> - </book> - <book num="2"> - <title>The Pearl</title> - <author>John Steinbeck</author> - </book> -</books> diff --git a/ext/xmlreader/examples/xmlreader_file.php b/ext/xmlreader/examples/xmlreader_file.php deleted file mode 100644 index 531e20b6f8..0000000000 --- a/ext/xmlreader/examples/xmlreader_file.php +++ /dev/null @@ -1,20 +0,0 @@ -<?php -$reader = new XMLReader(); -$reader->open('xmlreader.xml'); -while ($reader->read()) { - if ($reader->nodeType != XMLREADER::END_ELEMENT) { - print "Node Name: ".$reader->name."\n"; - print "Node Value: ".$reader->value."\n"; - print "Node Depth: ".$reader->depth."\n"; - if ($reader->nodeType==XMLREADER::ELEMENT && $reader->hasAttributes) { - $attr = $reader->moveToFirstAttribute(); - while ($attr) { - print " Attribute Name: ".$reader->name."\n"; - print " Attribute Value: ".$reader->value."\n"; - $attr = $reader->moveToNextAttribute(); - } - } - print "\n"; - } -} -?> diff --git a/ext/xmlreader/examples/xmlreader_relaxNG.php b/ext/xmlreader/examples/xmlreader_relaxNG.php deleted file mode 100644 index 09f14be8cd..0000000000 --- a/ext/xmlreader/examples/xmlreader_relaxNG.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -$indent = 5; /* Number of spaces to indent per level */ - -$reader = new XMLReader(); -$reader->open('relaxNG.xml'); -/* -Example setting relaxNG using string: -$reader->setRelaxNGSchemaSource(file_get_contents('relaxNG.rng')); -*/ -if ($reader->setRelaxNGSchema('relaxNG.rng')) { - while ($reader->read()) { - /* Print node name indenting it based on depth and $indent var */ - print str_repeat(" ", $reader->depth * $indent).$reader->name."\n"; - } -} - -print "\n"; - -if (! $reader->isValid()) { - print "Document is not valid\n"; -} else { - print "Document is valid\n"; -} - -?> diff --git a/ext/xmlreader/examples/xmlreader_string.php b/ext/xmlreader/examples/xmlreader_string.php deleted file mode 100644 index f267245fd9..0000000000 --- a/ext/xmlreader/examples/xmlreader_string.php +++ /dev/null @@ -1,31 +0,0 @@ -<?php -$xmlstring = '<books> - <book num="1"> - <title>The Grapes of Wrath</title> - <author>John Steinbeck</author> - </book> - <book num="2"> - <title>The Pearl</title> - <author>John Steinbeck</author> - </book> -</books>'; - -$reader = new XMLReader(); -$reader->XML($xmlstring); -while ($reader->read()) { - if ($reader->nodeType != XMLREADER::END_ELEMENT) { - print "Node Name: ".$reader->name."\n"; - print "Node Value: ".$reader->value."\n"; - print "Node Depth: ".$reader->depth."\n"; - if ($reader->nodeType==XMLREADER::ELEMENT && $reader->hasAttributes) { - $attr = $reader->moveToFirstAttribute(); - while ($attr) { - print " Attribute Name: ".$reader->name."\n"; - print " Attribute Value: ".$reader->value."\n"; - $attr = $reader->moveToNextAttribute(); - } - } - print "\n"; - } -} -?> diff --git a/ext/xmlreader/examples/xmlreader_validatedtd.php b/ext/xmlreader/examples/xmlreader_validatedtd.php deleted file mode 100644 index b5508b6169..0000000000 --- a/ext/xmlreader/examples/xmlreader_validatedtd.php +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$indent = 5; /* Number of spaces to indent per level */ - -$xml = new XMLReader(); -$xml->open("dtdexample.xml"); -$xml->setParserProperty(XMLREADER::LOADDTD, TRUE); -$xml->setParserProperty(XMLREADER::VALIDATE, TRUE); -while($xml->read()) { - /* Print node name indenting it based on depth and $indent var */ - print str_repeat(" ", $xml->depth * $indent).$xml->name."\n"; - if ($xml->hasAttributes) { - $attCount = $xml->attributeCount; - print str_repeat(" ", $xml->depth * $indent)." Number of Attributes: ".$xml->attributeCount."\n"; - } -} -print "\n\nValid:\n"; -var_dump($xml->isValid()); -?> diff --git a/ext/xmlreader/package.xml b/ext/xmlreader/package.xml deleted file mode 100644 index 8136d78780..0000000000 --- a/ext/xmlreader/package.xml +++ /dev/null @@ -1,75 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1" ?> -<!DOCTYPE package SYSTEM "../package.dtd"> -<package> - <name>xmlreader</name> - <summary>Provides fast, non-cached, forward-only access to XML data under PHP 5.</summary> - <description> - This extension wraps the libxml xmlReader API. The reader acts as a cursor - going forward on the document stream and stopping at each node in the way. - xmlReader is similar to SAX though uses a much simpler API. - </description> - <license>PHP License</license> - <maintainers> - <maintainer> - <user>rrichards</user> - <name>Rob Richards</name> - <email>rrichards@php.net</email> - <role>lead</role> - </maintainer> - <maintainer> - <user>chregu</user> - <role>lead</role> - <name>Christian Stocker</name> - <email>chregu@php.net</email> - </maintainer> - </maintainers> - - <release> - <version>1.0.1</version> - <date>2005-04-30</date> - <state>stable</state> - <notes> - Add workaround for next() bug when using libxml 2.6.17 and lower. - </notes> - </release> - - <changelog> - <release> - <version>1.0</version> - <date>2004-07-27</date> - <state>stable</state> - <notes> - Add name parameter to next() to skip to next named sibling node. - </notes> - </release> - </changelog> - - <configureoptions> - <configureoption name="with-xmlreader" default="autodetect" prompt="Include XMLReader support?"/> - </configureoptions> - <filelist> - <file role="src" name="config.m4"/> - <file role="src" name="config.w32"/> - <file role="src" name="php_xmlreader.c"/> - <file role="src" name="php_xmlreader.h"/> - - <file role="doc" name="CREDITS"/> - <file role="doc" name="TODO"/> - <file role="doc" name="README"/> - <file role="doc" name="examples/xmlreader_file.php"/> - <file role="doc" name="examples/xmlreader_string.php"/> - <file role="doc" name="examples/xmlreader.xml"/> - <file role="doc" name="examples/xmlreader_validatedtd.php"/> - <file role="doc" name="examples/dtdexample.xml"/> - <file role="doc" name="examples/dtdexample.dtd"/> - <file role="doc" name="examples/xmlreader_relaxNG.php"/> - <file role="doc" name="examples/relaxNG.xml"/> - <file role="doc" name="examples/relaxNG.rng"/> - <file role="doc" name="examples/relaxNG2.rng"/> - <file role="doc" name="examples/relaxNG3.rng"/> - </filelist> - <deps> - <dep type="php" rel="ge" version="5" /> - <dep type="ext" rel="has">libxml</dep> - </deps> -</package> diff --git a/ext/xmlreader/php_xmlreader.c b/ext/xmlreader/php_xmlreader.c index 6c1da2761d..4d4e7348c9 100644 --- a/ext/xmlreader/php_xmlreader.c +++ b/ext/xmlreader/php_xmlreader.c @@ -16,8 +16,6 @@ +----------------------------------------------------------------------+ */ -/* $Id$ */ - #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -61,11 +59,14 @@ typedef struct _xmlreader_prop_handler { static void xmlreader_register_prop_handler(HashTable *prop_handler, char *name, xmlreader_read_int_t read_int_func, xmlreader_read_const_char_t read_char_func, int rettype) { xmlreader_prop_handler hnd; + zend_string *str; hnd.read_char_func = read_char_func; hnd.read_int_func = read_int_func; hnd.type = rettype; - zend_hash_str_add_mem(prop_handler, name, strlen(name), &hnd, sizeof(xmlreader_prop_handler)); + str = zend_string_init_interned(name, strlen(name), 1); + zend_hash_add_mem(prop_handler, str, &hnd, sizeof(xmlreader_prop_handler)); + zend_string_release_ex(str, 1); } /* }}} */ @@ -119,12 +120,9 @@ zval *xmlreader_get_property_ptr_ptr(zval *object, zval *member, int type, void zval tmp_member; zval *retval = NULL; xmlreader_prop_handler *hnd = NULL; - zend_object_handlers *std_hnd; if (Z_TYPE_P(member) != IS_STRING) { - tmp_member = *member; - zval_copy_ctor(&tmp_member); - convert_to_string(&tmp_member); + ZVAL_STR(&tmp_member, zval_get_string_func(member)); member = &tmp_member; } @@ -135,12 +133,11 @@ zval *xmlreader_get_property_ptr_ptr(zval *object, zval *member, int type, void } if (hnd == NULL) { - std_hnd = zend_get_std_object_handlers(); - retval = std_hnd->get_property_ptr_ptr(object, member, type, cache_slot); + retval = zend_std_get_property_ptr_ptr(object, member, type, cache_slot); } if (member == &tmp_member) { - zval_dtor(member); + zval_ptr_dtor_str(&tmp_member); } return retval; @@ -154,12 +151,9 @@ zval *xmlreader_read_property(zval *object, zval *member, int type, void **cache zval tmp_member; zval *retval = NULL; xmlreader_prop_handler *hnd = NULL; - zend_object_handlers *std_hnd; if (Z_TYPE_P(member) != IS_STRING) { - tmp_member = *member; - zval_copy_ctor(&tmp_member); - convert_to_string(&tmp_member); + ZVAL_STR(&tmp_member, zval_get_string_func(member)); member = &tmp_member; } @@ -176,12 +170,11 @@ zval *xmlreader_read_property(zval *object, zval *member, int type, void **cache retval = rv; } } else { - std_hnd = zend_get_std_object_handlers(); - retval = std_hnd->read_property(object, member, type, cache_slot, rv); + retval = zend_std_read_property(object, member, type, cache_slot, rv); } if (member == &tmp_member) { - zval_dtor(member); + zval_ptr_dtor_str(&tmp_member); } return retval; } @@ -193,12 +186,9 @@ void xmlreader_write_property(zval *object, zval *member, zval *value, void **ca xmlreader_object *obj; zval tmp_member; xmlreader_prop_handler *hnd = NULL; - zend_object_handlers *std_hnd; if (Z_TYPE_P(member) != IS_STRING) { - tmp_member = *member; - zval_copy_ctor(&tmp_member); - convert_to_string(&tmp_member); + ZVAL_STR(&tmp_member, zval_get_string_func(member)); member = &tmp_member; } @@ -210,12 +200,11 @@ void xmlreader_write_property(zval *object, zval *member, zval *value, void **ca if (hnd != NULL) { php_error_docref(NULL, E_WARNING, "Cannot write to read-only property"); } else { - std_hnd = zend_get_std_object_handlers(); - std_hnd->write_property(object, member, value, cache_slot); + zend_std_write_property(object, member, value, cache_slot); } if (member == &tmp_member) { - zval_dtor(member); + zval_ptr_dtor_str(&tmp_member); } } /* }}} */ @@ -386,7 +375,7 @@ zend_object *xmlreader_objects_new(zend_class_entry *class_type) { xmlreader_object *intern; - intern = ecalloc(1, sizeof(xmlreader_object) + zend_object_properties_size(class_type)); + intern = zend_object_alloc(sizeof(xmlreader_object), class_type); zend_object_std_init(&intern->std, class_type); object_properties_init(&intern->std, class_type); intern->prop_handler = &xmlreader_prop_handlers; @@ -532,7 +521,7 @@ static void php_xmlreader_set_relaxng_schema(INTERNAL_FUNCTION_PARAMETERS, int t } /* }}} */ -/* {{{ proto boolean XMLReader::close() +/* {{{ proto bool XMLReader::close() Closes xmlreader - current frees resources until xmlTextReaderClose is fixed in libxml */ PHP_METHOD(xmlreader, close) { @@ -615,7 +604,7 @@ PHP_METHOD(xmlreader, getAttributeNs) } /* }}} */ -/* {{{ proto boolean XMLReader::getParserProperty(int property) +/* {{{ proto bool XMLReader::getParserProperty(int property) Indicates whether given property (one of the parser option constants) is set or not on parser */ PHP_METHOD(xmlreader, getParserProperty) { @@ -643,7 +632,7 @@ PHP_METHOD(xmlreader, getParserProperty) } /* }}} */ -/* {{{ proto boolean XMLReader::isValid() +/* {{{ proto bool XMLReader::isValid() Returns boolean indicating if parsed document is valid or not. Must set XMLREADER_LOADDTD or XMLREADER_VALIDATE parser option prior to the first call to read or this method will always return FALSE */ @@ -661,7 +650,7 @@ PHP_METHOD(xmlreader, lookupNamespace) } /* }}} */ -/* {{{ proto boolean XMLReader::moveToAttribute(string name) +/* {{{ proto bool XMLReader::moveToAttribute(string name) Positions reader at specified attribute - Returns TRUE on success and FALSE on failure */ PHP_METHOD(xmlreader, moveToAttribute) { @@ -694,7 +683,7 @@ PHP_METHOD(xmlreader, moveToAttribute) } /* }}} */ -/* {{{ proto boolean XMLReader::moveToAttributeNo(int index) +/* {{{ proto bool XMLReader::moveToAttributeNo(int index) Positions reader at attribute at specified index. Returns TRUE on success and FALSE on failure */ PHP_METHOD(xmlreader, moveToAttributeNo) @@ -722,7 +711,7 @@ PHP_METHOD(xmlreader, moveToAttributeNo) } /* }}} */ -/* {{{ proto boolean XMLReader::moveToAttributeNs(string name, string namespaceURI) +/* {{{ proto bool XMLReader::moveToAttributeNs(string name, string namespaceURI) Positions reader at attribute spcified by name and namespaceURI. Returns TRUE on success and FALSE on failure */ PHP_METHOD(xmlreader, moveToAttributeNs) @@ -756,7 +745,7 @@ PHP_METHOD(xmlreader, moveToAttributeNs) } /* }}} */ -/* {{{ proto boolean XMLReader::moveToElement() +/* {{{ proto bool XMLReader::moveToElement() Moves the position of the current instance to the node that contains the current Attribute node. */ PHP_METHOD(xmlreader, moveToElement) { @@ -764,7 +753,7 @@ PHP_METHOD(xmlreader, moveToElement) } /* }}} */ -/* {{{ proto boolean XMLReader::moveToFirstAttribute() +/* {{{ proto bool XMLReader::moveToFirstAttribute() Moves the position of the current instance to the first attribute associated with the current node. */ PHP_METHOD(xmlreader, moveToFirstAttribute) { @@ -772,7 +761,7 @@ PHP_METHOD(xmlreader, moveToFirstAttribute) } /* }}} */ -/* {{{ proto boolean XMLReader::moveToNextAttribute() +/* {{{ proto bool XMLReader::moveToNextAttribute() Moves the position of the current instance to the next attribute associated with the current node. */ PHP_METHOD(xmlreader, moveToNextAttribute) { @@ -780,7 +769,7 @@ PHP_METHOD(xmlreader, moveToNextAttribute) } /* }}} */ -/* {{{ proto boolean XMLReader::read() +/* {{{ proto bool XMLReader::read() Moves the position of the current instance to the next node in the stream. */ PHP_METHOD(xmlreader, read) { @@ -804,7 +793,7 @@ PHP_METHOD(xmlreader, read) } /* }}} */ -/* {{{ proto boolean XMLReader::next([string localname]) +/* {{{ proto bool XMLReader::next([string localname]) Moves the position of the current instance to the next node in the stream. */ PHP_METHOD(xmlreader, next) { @@ -846,7 +835,7 @@ PHP_METHOD(xmlreader, next) } /* }}} */ -/* {{{ proto boolean XMLReader::open(string URI [, string encoding [, int options]]) +/* {{{ proto bool XMLReader::open(string URI [, string encoding [, int options]]) Sets the URI that the XMLReader will parse. */ PHP_METHOD(xmlreader, open) { @@ -919,7 +908,7 @@ PHP_METHOD(xmlreader, readInnerXml) } /* }}} */ -/* {{{ proto boolean XMLReader::readOuterXml() +/* {{{ proto bool XMLReader::readOuterXml() Reads the contents of the current node, including child nodes and markup. */ PHP_METHOD(xmlreader, readOuterXml) { @@ -927,7 +916,7 @@ PHP_METHOD(xmlreader, readOuterXml) } /* }}} */ -/* {{{ proto boolean XMLReader::readString() +/* {{{ proto bool XMLReader::readString() Reads the contents of an element or a text node as a string. */ PHP_METHOD(xmlreader, readString) { @@ -935,7 +924,7 @@ PHP_METHOD(xmlreader, readString) } /* }}} */ -/* {{{ proto boolean XMLReader::setSchema(string filename) +/* {{{ proto bool XMLReader::setSchema(string filename) Use W3C XSD schema to validate the document as it is processed. Activation is only possible before the first Read(). */ PHP_METHOD(xmlreader, setSchema) { @@ -978,7 +967,7 @@ PHP_METHOD(xmlreader, setSchema) /* }}} */ #endif -/* {{{ proto boolean XMLReader::setParserProperty(int property, boolean value) +/* {{{ proto bool XMLReader::setParserProperty(int property, bool value) Sets parser property (one of the parser option constants). Properties must be set after open() or XML() and before the first read() is called */ PHP_METHOD(xmlreader, setParserProperty) @@ -1008,7 +997,7 @@ PHP_METHOD(xmlreader, setParserProperty) } /* }}} */ -/* {{{ proto boolean XMLReader::setRelaxNGSchema(string filename) +/* {{{ proto bool XMLReader::setRelaxNGSchema(string filename) Sets the string that the XMLReader will parse. */ PHP_METHOD(xmlreader, setRelaxNGSchema) { @@ -1016,7 +1005,7 @@ PHP_METHOD(xmlreader, setRelaxNGSchema) } /* }}} */ -/* {{{ proto boolean XMLReader::setRelaxNGSchemaSource(string source) +/* {{{ proto bool XMLReader::setRelaxNGSchemaSource(string source) Sets the string that the XMLReader will parse. */ PHP_METHOD(xmlreader, setRelaxNGSchemaSource) { @@ -1030,7 +1019,7 @@ XMLPUBFUN int XMLCALL xmlSchemaPtr schema); */ -/* {{{ proto boolean XMLReader::XML(string source [, string encoding [, int options]]) +/* {{{ proto bool XMLReader::XML(string source [, string encoding [, int options]]) Sets the string that the XMLReader will parse. */ PHP_METHOD(xmlreader, XML) { @@ -1116,7 +1105,7 @@ PHP_METHOD(xmlreader, XML) } /* }}} */ -/* {{{ proto boolean XMLReader::expand() +/* {{{ proto bool XMLReader::expand() Moves the position of the current instance to the next node in the stream. */ PHP_METHOD(xmlreader, expand) { @@ -1306,7 +1295,7 @@ PHP_MINIT_FUNCTION(xmlreader) zend_class_entry ce; - memcpy(&xmlreader_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); + memcpy(&xmlreader_object_handlers, &std_object_handlers, sizeof(zend_object_handlers)); xmlreader_object_handlers.offset = XtOffsetOf(xmlreader_object, std); xmlreader_object_handlers.dtor_obj = zend_objects_destroy_object; xmlreader_object_handlers.free_obj = xmlreader_objects_free_storage; diff --git a/ext/xmlreader/php_xmlreader.h b/ext/xmlreader/php_xmlreader.h index 888248adf6..4e29b8ed21 100644 --- a/ext/xmlreader/php_xmlreader.h +++ b/ext/xmlreader/php_xmlreader.h @@ -16,8 +16,6 @@ +----------------------------------------------------------------------+ */ -/* $Id$ */ - #ifndef PHP_XMLREADER_H #define PHP_XMLREADER_H diff --git a/ext/xmlreader/tests/001.phpt b/ext/xmlreader/tests/001.phpt index 56c29ba6e7..fa87eba8b4 100644 --- a/ext/xmlreader/tests/001.phpt +++ b/ext/xmlreader/tests/001.phpt @@ -4,7 +4,6 @@ XMLReader: libxml2 XML Reader, string data <?php if (!extension_loaded("xmlreader")) print "skip"; ?> --FILE-- <?php -/* $Id$ */ $xmlstring = '<?xml version="1.0" encoding="UTF-8"?> <books></books>'; diff --git a/ext/xmlreader/tests/002.phpt b/ext/xmlreader/tests/002.phpt index ab6155ef42..6101d6cc48 100644 --- a/ext/xmlreader/tests/002.phpt +++ b/ext/xmlreader/tests/002.phpt @@ -4,7 +4,6 @@ XMLReader: libxml2 XML Reader, file data <?php if (!extension_loaded("xmlreader")) print "skip"; ?> --FILE-- <?php -/* $Id$ */ $filename = dirname(__FILE__) . '/_002.xml'; $xmlstring = '<?xml version="1.0" encoding="UTF-8"?> <books></books>'; diff --git a/ext/xmlreader/tests/003-mb.phpt b/ext/xmlreader/tests/003-mb.phpt index 3599263a86..905f8fd03e 100644 --- a/ext/xmlreader/tests/003-mb.phpt +++ b/ext/xmlreader/tests/003-mb.phpt @@ -4,7 +4,6 @@ XMLReader: libxml2 XML Reader, attributes test <?php if (!extension_loaded("xmlreader")) print "skip"; ?> --FILE-- <?php -/* $Id$ */ $filename = dirname(__FILE__) . '/私はガラスを食べられます_003.xml'; $xmlstring = '<?xml version="1.0" encoding="UTF-8"?> diff --git a/ext/xmlreader/tests/003.phpt b/ext/xmlreader/tests/003.phpt index 725113540f..3dc8caf55a 100644 --- a/ext/xmlreader/tests/003.phpt +++ b/ext/xmlreader/tests/003.phpt @@ -4,7 +4,6 @@ XMLReader: libxml2 XML Reader, attributes test <?php if (!extension_loaded("xmlreader")) print "skip"; ?> --FILE-- <?php -/* $Id$ */ $filename = dirname(__FILE__) . '/_003.xml'; $xmlstring = '<?xml version="1.0" encoding="UTF-8"?> diff --git a/ext/xmlreader/tests/004.phpt b/ext/xmlreader/tests/004.phpt index bba7dd10fb..9298945847 100644 --- a/ext/xmlreader/tests/004.phpt +++ b/ext/xmlreader/tests/004.phpt @@ -4,7 +4,6 @@ XMLReader: libxml2 XML Reader, attributes test <?php if (!extension_loaded("xmlreader")) print "skip"; ?> --FILE-- <?php -/* $Id$ */ $filename = dirname(__FILE__) . '/_004.xml'; $xmlstring = '<?xml version="1.0" encoding="UTF-8"?> diff --git a/ext/xmlreader/tests/005.phpt b/ext/xmlreader/tests/005.phpt index 5ec0c9102b..ea34f89108 100644 --- a/ext/xmlreader/tests/005.phpt +++ b/ext/xmlreader/tests/005.phpt @@ -4,7 +4,6 @@ XMLReader: libxml2 XML Reader, parser property set/get <?php if (!extension_loaded("xmlreader")) print "skip"; ?> --FILE-- <?php -/* $Id$ */ $xmlstring = '<?xml version="1.0" encoding="UTF-8"?> <books></books>'; diff --git a/ext/xmlreader/tests/006.phpt b/ext/xmlreader/tests/006.phpt index 05142bca6e..fce705c262 100644 --- a/ext/xmlreader/tests/006.phpt +++ b/ext/xmlreader/tests/006.phpt @@ -4,7 +4,6 @@ XMLReader: libxml2 XML Reader, moveToElement <?php if (!extension_loaded("xmlreader")) print "skip"; ?> --FILE-- <?php -/* $Id$ */ $xmlstring = '<?xml version="1.0" encoding="UTF-8"?> <books><book num="1"></book><test /></books>'; diff --git a/ext/xmlreader/tests/007.phpt b/ext/xmlreader/tests/007.phpt index ed7533dc0b..acbb574721 100644 --- a/ext/xmlreader/tests/007.phpt +++ b/ext/xmlreader/tests/007.phpt @@ -4,7 +4,6 @@ XMLReader: libxml2 XML Reader, setRelaxNGSchema <?php if (!extension_loaded("xmlreader")) print "skip"; ?> --FILE-- <?php -/* $Id$ */ $xmlstring = '<TEI.2>hello</TEI.2>'; $relaxngfile = dirname(__FILE__) . '/relaxNG.rng'; diff --git a/ext/xmlreader/tests/008.phpt b/ext/xmlreader/tests/008.phpt index f38bc8d542..fd3da46184 100644 --- a/ext/xmlreader/tests/008.phpt +++ b/ext/xmlreader/tests/008.phpt @@ -4,7 +4,6 @@ XMLReader: libxml2 XML Reader, DTD <?php if (!extension_loaded("xmlreader")) print "skip"; ?> --FILE-- <?php -/* $Id$ */ $xmlstring = '<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE LIST SYSTEM "dtdexample.dtd"> @@ -65,7 +64,7 @@ if ($reader->isValid()) { } ?> ===DONE=== ---EXPECTF-- +--EXPECT-- file DTD: ok string DTD: ok ===DONE=== diff --git a/ext/xmlreader/tests/009.phpt b/ext/xmlreader/tests/009.phpt index 9e5dfa5207..e988563b42 100644 --- a/ext/xmlreader/tests/009.phpt +++ b/ext/xmlreader/tests/009.phpt @@ -4,7 +4,6 @@ XMLReader: libxml2 XML Reader, next <?php if (!extension_loaded("xmlreader")) print "skip"; ?> --FILE-- <?php -/* $Id$ */ $xmlstring = '<?xml version="1.0" encoding="UTF-8"?> <books><book num="1"><test /></book><book num="2" /></books>'; @@ -23,6 +22,6 @@ echo $reader->getAttribute('num'); echo "\n"; ?> ===DONE=== ---EXPECTF-- +--EXPECT-- book 2 ===DONE=== diff --git a/ext/xmlreader/tests/010.phpt b/ext/xmlreader/tests/010.phpt index abdff6f21b..4a1ebe174e 100644 --- a/ext/xmlreader/tests/010.phpt +++ b/ext/xmlreader/tests/010.phpt @@ -4,7 +4,6 @@ XMLReader: libxml2 XML Reader, next <?php if (!extension_loaded("xmlreader")) print "skip"; ?> --FILE-- <?php -/* $Id$ */ $xmlstring = '<?xml version="1.0" encoding="UTF-8"?> <prefix:books xmlns:prefix="uri" isbn="" prefix:isbn="12isbn">book1</prefix:books>'; @@ -22,6 +21,6 @@ echo $reader->getAttributeNs('isbn', 'uri'); echo "\n"; ?> ===DONE=== ---EXPECTF-- +--EXPECT-- prefix:books 12isbn ===DONE=== diff --git a/ext/xmlreader/tests/011.phpt b/ext/xmlreader/tests/011.phpt index 6700bd8387..658c37f03b 100644 --- a/ext/xmlreader/tests/011.phpt +++ b/ext/xmlreader/tests/011.phpt @@ -7,7 +7,6 @@ if (!method_exists($reader, 'readInnerXml')) print "skip"; ?> --FILE-- <?php -/* $Id$ */ $xmlstring = '<?xml version="1.0" encoding="UTF-8"?> <books><book>test</book></books>'; diff --git a/ext/xmlreader/tests/012.phpt b/ext/xmlreader/tests/012.phpt index 102e7615b7..50b761c235 100644 --- a/ext/xmlreader/tests/012.phpt +++ b/ext/xmlreader/tests/012.phpt @@ -4,7 +4,6 @@ XMLReader: accessing empty and non existing attributes <?php if (!extension_loaded("xmlreader")) print "skip"; ?> --FILE-- <?php -/* $Id$ */ $xmlstring =<<<EOF <?xml version="1.0" encoding="UTF-8"?> diff --git a/ext/xmlreader/tests/013.phpt b/ext/xmlreader/tests/013.phpt index d8643ffec7..09bef8df0c 100644 --- a/ext/xmlreader/tests/013.phpt +++ b/ext/xmlreader/tests/013.phpt @@ -5,7 +5,6 @@ XMLReader: Schema validation <?php if (!method_exists('XMLReader','setSchema')) die('skip XMLReader::setSchema() not supported');?> --FILE-- <?php -/* $Id$ */ $xml =<<<EOF <?xml version="1.0" encoding="UTF-8" ?> diff --git a/ext/xmlreader/tests/bug70309.phpt b/ext/xmlreader/tests/bug70309.phpt index 021d346bda..aa49051593 100644 --- a/ext/xmlreader/tests/bug70309.phpt +++ b/ext/xmlreader/tests/bug70309.phpt @@ -39,5 +39,5 @@ $doc->setRelaxNGSchema('http://docs.oasis-open.org/docbook/rng/5.0/docbook.rng') while (@$doc->read() !== false); ?> ===DONE=== ---EXPECTF-- +--EXPECT-- ===DONE=== diff --git a/ext/xmlreader/tests/expand_error.phpt b/ext/xmlreader/tests/expand_error.phpt new file mode 100644 index 0000000000..2813e836d9 --- /dev/null +++ b/ext/xmlreader/tests/expand_error.phpt @@ -0,0 +1,29 @@ +--TEST-- +XMLReader: Expand Error +--SKIPIF-- +<?php if (!extension_loaded("xmlreader")) print "skip"; +if (!extension_loaded("dom")) print "skip DOM extension required"; +$reader = new XMLReader(); +if (!method_exists($reader, 'expand')) print "skip"; +?> +--FILE-- +<?php + +$xmlstring = '<?xml version="1.0" encoding="UTF-8"?> +<books><book>new book</book></books>'; + +$reader = new XMLReader(); +var_dump($reader->expand()); +$reader->close(); + +$reader = new XMLReader(); +$reader->XML($xmlstring); +var_dump($reader->expand()); +$reader->close(); +?> +--EXPECTF-- +Warning: XMLReader::expand(): Load Data before trying to expand in %s on line %d +bool(false) + +Warning: XMLReader::expand(): An Error Occurred while expanding in %s on line %d +bool(false) |
