Changed Default Flags to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401
As of PHP 8.1.0, the flags argument of multiple html_*()
functions defaults to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401
, where previously it defaulted to ENT_COMPAT
. This changes the result when the flags argument is not explicitly provided:
htmlentities("it's an apostrophe");
See execution result.
Affected functions:
html_entity_decode()
htmlentities()
htmlspecialchars()
get_html_translation_table()
Solution
The simplest solution is to provide the original default value explicitly:
htmlentities("it's an apostrophe", ENT_COMPAT);
See execution result.