From b05b756148e1a1f24deaadcb0a021e77839bba43 Mon Sep 17 00:00:00 2001 From: Mario Date: Sun, 14 Jan 2024 17:23:57 +0000 Subject: Handling HTML entities via mbstring is deprecated --- include/html2bbcode.php | 6 +++++- include/html2plain.php | 5 ++++- include/oembed.php | 11 +++++++++-- 3 files changed, 18 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/html2bbcode.php b/include/html2bbcode.php index c928b91b1..aca3ff4f8 100644 --- a/include/html2bbcode.php +++ b/include/html2bbcode.php @@ -104,7 +104,11 @@ function html2bbcode($message) $message = preg_replace('=<(\w+):(.+?)>=', '', $message); $message = preg_replace('==', '', $message); - $message = mb_convert_encoding($message, 'HTML-ENTITIES', "UTF-8"); + // mb_convert_encoding() is deprecated + //$message = mb_convert_encoding($message, 'HTML-ENTITIES', "UTF-8"); + $message = mb_encode_numericentity($message, [0x80, 0x10FFFF, 0, ~0], 'UTF-8'); + + if(!$message) return; diff --git a/include/html2plain.php b/include/html2plain.php index 48bbe3d9e..5cb7ee35d 100644 --- a/include/html2plain.php +++ b/include/html2plain.php @@ -121,7 +121,10 @@ function html2plain($html, $wraplength = 75, $compact = false) { $message = str_replace("\r", "", $html); - $message = mb_convert_encoding($message, 'HTML-ENTITIES', "UTF-8"); + + // mb_convert_encoding() is deprecated + //$message = mb_convert_encoding($message, 'HTML-ENTITIES', "UTF-8"); + $message = mb_encode_numericentity($message, [0x80, 0x10FFFF, 0, ~0], 'UTF-8'); if(!$message) return; diff --git a/include/oembed.php b/include/oembed.php index fbe6a573b..a90c91641 100644 --- a/include/oembed.php +++ b/include/oembed.php @@ -395,7 +395,11 @@ function oembed_format_object($j){ $ret .= "
$embedurl"; } $ret.="
"; - return mb_convert_encoding($ret, 'HTML-ENTITIES', mb_detect_encoding($ret)); + + // mb_convert_encoding() is deprecated + // return mb_convert_encoding($ret, 'HTML-ENTITIES', mb_detect_encoding($ret)); + return mb_encode_numericentity($ret, [0x80, 0x10FFFF, 0, ~0], 'UTF-8'); + } function oembed_iframe($src,$width,$height) { @@ -456,7 +460,10 @@ function oembed_html2bbcode($text) { if (strpos($text, "oembed")){ // convert non ascii chars to html entities - $html_text = mb_convert_encoding($text, 'HTML-ENTITIES', mb_detect_encoding($text)); + + // mb_convert_encoding() is deprecated + // $html_text = mb_convert_encoding($text, 'HTML-ENTITIES', mb_detect_encoding($text)); + $html_text = mb_encode_numericentity($text, [0x80, 0x10FFFF, 0, ~0], 'UTF-8'); // If it doesn't parse at all, just return the text. -- cgit v1.2.3