summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Watkins <krakjoe@php.net>2017-02-03 06:12:20 +0000
committerJoe Watkins <krakjoe@php.net>2017-02-03 06:12:42 +0000
commit611952cd9845bd0e046fc7bd24c17a7341b96f7d (patch)
treec22b1eb0878967ce5a82e2cdc761746af6a50b61
parente9209e15a21e563defe02e0ce71f13bfa0dfbedd (diff)
parent6988d070ea8c7d44452d8c98e594d65ea722a1d8 (diff)
downloadphp-git-611952cd9845bd0e046fc7bd24c17a7341b96f7d.tar.gz
Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0: Fixed bug #74004 LIBXML_NOWARNING (etc) ignored by DOMDocument::loadHTML
-rw-r--r--NEWS4
-rw-r--r--ext/dom/document.c8
-rw-r--r--ext/dom/tests/bug74004.phpt15
3 files changed, 23 insertions, 4 deletions
diff --git a/NEWS b/NEWS
index e1f33e73b7..2cbbf752d8 100644
--- a/NEWS
+++ b/NEWS
@@ -8,6 +8,10 @@ PHP NEWS
. Fixed bug #73998 (array_key_exists fails on arrays created by
get_object_vars). (mhagstrand)
+- DOM:
+ . Fixed bug #74004 (LIBXML_NOWARNING (etc) ignored by DOMDocument::loadHTML).
+ (somedaysummer)
+
- GD:
. Fixed bug #74031 (ReflectionFunction for imagepng is missing last two
parameters). (finwe)
diff --git a/ext/dom/document.c b/ext/dom/document.c
index 18d652064e..cac6830077 100644
--- a/ext/dom/document.c
+++ b/ext/dom/document.c
@@ -2038,16 +2038,16 @@ static void dom_load_html(INTERNAL_FUNCTION_PARAMETERS, int mode) /* {{{ */
RETURN_FALSE;
}
- if (options) {
- htmlCtxtUseOptions(ctxt, (int)options);
- }
-
+
ctxt->vctxt.error = php_libxml_ctx_error;
ctxt->vctxt.warning = php_libxml_ctx_warning;
if (ctxt->sax != NULL) {
ctxt->sax->error = php_libxml_ctx_error;
ctxt->sax->warning = php_libxml_ctx_warning;
}
+ if (options) {
+ htmlCtxtUseOptions(ctxt, (int)options);
+ }
htmlParseDocument(ctxt);
newdoc = ctxt->myDoc;
htmlFreeParserCtxt(ctxt);
diff --git a/ext/dom/tests/bug74004.phpt b/ext/dom/tests/bug74004.phpt
new file mode 100644
index 0000000000..853dfa5b09
--- /dev/null
+++ b/ext/dom/tests/bug74004.phpt
@@ -0,0 +1,15 @@
+--TEST--
+Bug #74004 (DOMDocument->loadHTML and ->loadHTMLFile do not heed LIBXML_NOWARNING and LIBXML_NOERROR options)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+
+$doc=new DOMDocument();
+libxml_use_internal_errors(true);
+$doc->loadHTML("<tag-throw-warning></tag-throw-warning>",LIBXML_NOWARNING|LIBXML_NOERROR);
+print count(libxml_get_errors());
+
+?>
+--EXPECT--
+0