Merge branch 'PHP-8.4'

* PHP-8.4:
  Fix test GH-16535 for libxml2 2.14
  Fix tests for libxml2 2.14
This commit is contained in:
Niels Dossche 2025-03-10 20:23:50 +01:00
commit 9d60dc16b8
No known key found for this signature in database
GPG key ID: B8A8AD166DF0E2E5
6 changed files with 12 additions and 15 deletions

View file

@ -6,6 +6,10 @@ Verifies that an warning message is showed if an empty document is loaded
Antonio Diaz Ruiz <dejalatele@gmail.com> Antonio Diaz Ruiz <dejalatele@gmail.com>
--EXTENSIONS-- --EXTENSIONS--
dom dom
--SKIPIF--
<?php
if (LIBXML_VERSION >= 21400) die("skip libxml >= 2.14 no longer has this non-standard warning");
?>
--FILE-- --FILE--
<?php <?php
$doc = new DOMDocument(); $doc = new DOMDocument();

View file

@ -9,6 +9,6 @@ $html = "<!DOCTYPE html><html><head><meta charset='UTF-8'></head><body>U+0000 <s
$doc->loadHTML($html); $doc->loadHTML($html);
print($doc->saveHTML()); print($doc->saveHTML());
?> ?>
--EXPECT-- --EXPECTF--
<!DOCTYPE html> <!DOCTYPE html>
<html><head><meta charset="UTF-8"></head><body>U+0000 <span></span></body></html> <html><head><meta charset="UTF-8"></head><body>U+0000 <span>%r(&#65533;|)%r</span></body></html>

View file

@ -6,9 +6,8 @@ dom
<?php <?php
$htm = "<!DOCTYPE><html></html>"; $htm = "<!DOCTYPE><html></html>";
$dom = new DOMDocument; $dom = new DOMDocument;
$dom->loadHTML($htm); $dom->loadHTML($htm, LIBXML_NOERROR);
var_dump($dom->doctype->name); var_dump($dom->doctype->name);
?> ?>
--EXPECTF-- --EXPECTF--
Warning: DOMDocument::loadHTML(): htmlParseDocTypeDecl : no DOCTYPE name ! in Entity, line: 1 in %s on line %d
string(0) "" string(0) ""

View file

@ -9,13 +9,13 @@ if (LIBXML_VERSION < 20912) die('skip For libxml2 >= 2.9.12 only');
--FILE-- --FILE--
<?php <?php
$doc = new DOMDocument; $doc = new DOMDocument;
$doc->loadHTML("<p>foo\0bar</p>"); $doc->loadHTML("<p>foo\0bar</p>", LIBXML_NOERROR);
$html = $doc->saveHTML(); $html = $doc->saveHTML();
var_dump(strpos($html, '<p>foo</p>') !== false); var_dump(strpos($html, '<p>foo</p>') !== false);
file_put_contents(__DIR__ . '/80268.html', "<p>foo\0bar</p>"); file_put_contents(__DIR__ . '/80268.html', "<p>foo\0bar</p>");
$doc = new DOMDocument; $doc = new DOMDocument;
$doc->loadHTMLFile(__DIR__ . '/80268.html'); $doc->loadHTMLFile(__DIR__ . '/80268.html', LIBXML_NOERROR);
$html = $doc->saveHTML(); $html = $doc->saveHTML();
var_dump(strpos($html, '<p>foo</p>') !== false); var_dump(strpos($html, '<p>foo</p>') !== false);
?> ?>
@ -24,8 +24,5 @@ var_dump(strpos($html, '<p>foo</p>') !== false);
unlink(__DIR__ . '/80268.html'); unlink(__DIR__ . '/80268.html');
?> ?>
--EXPECTF-- --EXPECTF--
Warning: DOMDocument::loadHTML(): Char 0x0 out of allowed range in Entity, line: 1 in %s on line %d
bool(false) bool(false)
Warning: DOMDocument::loadHTMLFile(): Char 0x0 out of allowed range in %s on line %d
bool(false) bool(false)

View file

@ -14,7 +14,7 @@ try {
} catch (DOMException $e) { } catch (DOMException $e) {
echo $e->getMessage(), "\n"; echo $e->getMessage(), "\n";
} }
$v2->loadHTML("oU"); $v2->loadHTML("<p>oU</p>");
echo $v2->saveXML(); echo $v2->saveXML();
?> ?>

View file

@ -7,7 +7,7 @@ dom
<?php <?php
$dom = new DOMDocument; $dom = new DOMDocument;
$dom->loadHTML('<span title=""y">x</span><span title=""z">x</span>'); $dom->loadHTML('<span title=""y">x</span><span title=""z">x</span>', LIBXML_NOERROR);
$html = simplexml_import_dom($dom); $html = simplexml_import_dom($dom);
var_dump($html->body->span); var_dump($html->body->span);
@ -18,15 +18,12 @@ foreach ($html->body->span as $obj) {
?> ?>
--EXPECTF-- --EXPECTF--
Warning: DOMDocument::loadHTML(): error parsing attribute name in Entity, line: 1 in %s on line %d
Warning: DOMDocument::loadHTML(): error parsing attribute name in Entity, line: 1 in %s on line %d
object(SimpleXMLElement)#%d (3) { object(SimpleXMLElement)#%d (3) {
["@attributes"]=> ["@attributes"]=>
array(2) { array(2) {
["title"]=> ["title"]=>
string(0) "" string(0) ""
["y"]=> [%r("y"{1,2})%r]=>
string(0) "" string(0) ""
} }
[0]=> [0]=>