chregu Mon, 11 Jul 2011 15:18:46 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=313135
Log:
Added the ability to pass options to loadHTML (Chregu, fxmulder at gmail dot
com)
(MFT - Merged from Trunk)
Changed paths:
U php/php-src/branches/PHP_5_4/NEWS
U php/php-src/branches/PHP_5_4/ext/dom/document.c
U php/php-src/branches/PHP_5_4/ext/libxml/libxml.c
Modified: php/php-src/branches/PHP_5_4/NEWS
===================================================================
--- php/php-src/branches/PHP_5_4/NEWS 2011-07-11 15:15:57 UTC (rev 313134)
+++ php/php-src/branches/PHP_5_4/NEWS 2011-07-11 15:18:46 UTC (rev 313135)
@@ -156,6 +156,9 @@
. Added Tokyo Cabinet abstract DB support. (Michael Maclean)
. Added Berkeley DB 5 support. (Johannes, Chris Jones)
+- Improved DOM extension:
+ . Added the ability to pass options to loadHTML (Chregu, fxmulder at gmail
dot com)
+
- Improved filesystem functions:
. scandir() now accepts SCANDIR_SORT_NONE as a possible sorting_order value.
FR #53407. (Adam)
Modified: php/php-src/branches/PHP_5_4/ext/dom/document.c
===================================================================
--- php/php-src/branches/PHP_5_4/ext/dom/document.c 2011-07-11 15:15:57 UTC
(rev 313134)
+++ php/php-src/branches/PHP_5_4/ext/dom/document.c 2011-07-11 15:18:46 UTC
(rev 313135)
@@ -149,10 +149,12 @@
ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_document_loadhtml, 0, 0, 1)
ZEND_ARG_INFO(0, source)
+ ZEND_ARG_INFO(0, options)
ZEND_END_ARG_INFO();
ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_document_loadhtmlfile, 0, 0, 1)
ZEND_ARG_INFO(0, source)
+ ZEND_ARG_INFO(0, options)
ZEND_END_ARG_INFO();
ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_document_savehtml, 0, 0, 0)
@@ -2155,12 +2157,12 @@
dom_object *intern;
dom_doc_propsptr doc_prop;
char *source;
- int source_len, refcount, ret;
+ int source_len, refcount, ret, options = 0;
htmlParserCtxtPtr ctxt;
id = getThis();
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &source,
&source_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &source,
&source_len, &options) == FAILURE) {
return;
}
@@ -2180,6 +2182,10 @@
RETURN_FALSE;
}
+ if (options) {
+ htmlCtxtUseOptions(ctxt, options);
+ }
+
ctxt->vctxt.error = php_libxml_ctx_error;
ctxt->vctxt.warning = php_libxml_ctx_warning;
if (ctxt->sax != NULL) {
Modified: php/php-src/branches/PHP_5_4/ext/libxml/libxml.c
===================================================================
--- php/php-src/branches/PHP_5_4/ext/libxml/libxml.c 2011-07-11 15:15:57 UTC
(rev 313134)
+++ php/php-src/branches/PHP_5_4/ext/libxml/libxml.c 2011-07-11 15:18:46 UTC
(rev 313135)
@@ -618,6 +618,7 @@
REGISTER_LONG_CONSTANT("LIBXML_NSCLEAN", XML_PARSE_NSCLEAN,
CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("LIBXML_NOCDATA", XML_PARSE_NOCDATA,
CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("LIBXML_NONET", XML_PARSE_NONET,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("LIBXML_PEDANTIC", XML_PARSE_PEDANTIC,
CONST_CS | CONST_PERSISTENT);
#if LIBXML_VERSION >= 20621
REGISTER_LONG_CONSTANT("LIBXML_COMPACT", XML_PARSE_COMPACT,
CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("LIBXML_NOXMLDECL", XML_SAVE_NO_DECL,
CONST_CS | CONST_PERSISTENT);
@@ -627,6 +628,15 @@
#endif
REGISTER_LONG_CONSTANT("LIBXML_NOEMPTYTAG", LIBXML_SAVE_NOEMPTYTAG,
CONST_CS | CONST_PERSISTENT);
+ /* Additional constants for use with loading html */
+#if LIBXML_VERSION >= 20707
+ REGISTER_LONG_CONSTANT("LIBXML_HTML_NOIMPLIED", HTML_PARSE_NOIMPLIED,
CONST_CS | CONST_PERSISTENT);
+#endif
+
+#if LIBXML_VERSION >= 20708
+ REGISTER_LONG_CONSTANT("LIBXML_HTML_NODEFDTD", HTML_PARSE_NODEFDTD,
CONST_CS | CONST_PERSISTENT);
+#endif
+
/* Error levels */
REGISTER_LONG_CONSTANT("LIBXML_ERR_NONE", XML_ERR_NONE,
CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("LIBXML_ERR_WARNING", XML_ERR_WARNING,
CONST_CS | CONST_PERSISTENT);
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php