Commit Graph

4 Commits

Author SHA1 Message Date
wn_ de00a09538 Make implicit nullable parameters explicitly nullable.
This is to address a deprecation planned for PHP 8.4.

https://wiki.php.net/rfc/deprecate-implicitly-nullable-types
2024-03-26 16:43:39 +00:00
Andrew Dolgov 67012f9dac
Revert "Fix sanitizer with libxml2 >= 2.12.0"
This reverts commit d4da4dcc32.
2023-12-17 22:42:52 +03:00
Chih-Hsuan Yen d4da4dcc32 Fix sanitizer with libxml2 >= 2.12.0
Somehow with newer libxml2, `<?xml encoding="UTF-8">` no longer enforces
UTF-8. Instead, non-ASCII contents are treated as ISO-8859-1 and get
broken.

For example, `<p>中文</p>` becomes
`<p>&auml;&cedil;&shy;&aelig;&#150;&#135;</p>` (should be
`<p>&#20013;&#25991;</p>`).

Switching to another trick mentioned on [1] fixes the issue, and the
new trick still works with older libxml2 (tested 2.11.5).

As a side note, DOMDocument::loadHTML uses HTMLParser in libxml2 [2][3].

[1] https://stackoverflow.com/questions/8218230/php-domdocument-loadhtml-not-encoding-utf-8-correctly
[2] https://github.com/php/php-src/blob/php-8.1.26/ext/dom/document.c#L1855
[3] https://gnome.pages.gitlab.gnome.org/libxml2/devhelp/libxml2-HTMLparser.html
2023-11-26 21:04:56 +08:00
Andrew Dolgov 865ecc8796
move to psr-4 autoloader 2023-10-25 12:55:09 +03:00