chregu                                   Mon, 11 Jul 2011 15:02:56 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=313133

Log:
Added the ability to pass options to loadHTML (Chregu, fxmulder at gmail dot 
com)

Changed paths:
    U   php/php-src/trunk/NEWS
    U   php/php-src/trunk/ext/dom/document.c
    U   php/php-src/trunk/ext/libxml/libxml.c

Modified: php/php-src/trunk/NEWS
===================================================================
--- php/php-src/trunk/NEWS      2011-07-11 12:08:02 UTC (rev 313132)
+++ php/php-src/trunk/NEWS      2011-07-11 15:02:56 UTC (rev 313133)
@@ -140,6 +140,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/trunk/ext/dom/document.c
===================================================================
--- php/php-src/trunk/ext/dom/document.c        2011-07-11 12:08:02 UTC (rev 
313132)
+++ php/php-src/trunk/ext/dom/document.c        2011-07-11 15:02:56 UTC (rev 
313133)
@@ -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/trunk/ext/libxml/libxml.c
===================================================================
--- php/php-src/trunk/ext/libxml/libxml.c       2011-07-11 12:08:02 UTC (rev 
313132)
+++ php/php-src/trunk/ext/libxml/libxml.c       2011-07-11 15:02:56 UTC (rev 
313133)
@@ -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

Reply via email to