Handling HTML entities via mbstring is deprecated

This commit is contained in:
Mario
2024-01-14 17:23:57 +00:00
parent 03819abb22
commit b05b756148
4 changed files with 23 additions and 6 deletions

View File

@@ -294,8 +294,11 @@ class Linkinfo extends \Zotlabs\Web\Controller {
if(empty($cp))
$cp = (preg_match('/meta.+content=["\']text\/html; charset=([^"\']+)/i', $body, $o) ? $o[1] : 'AUTO');
$body = mb_convert_encoding($body, 'UTF-8', $cp);
$body = mb_convert_encoding($body, 'HTML-ENTITIES', "UTF-8");
// mb_convert_encoding() is deprecated
//$body = mb_convert_encoding($body, 'UTF-8', $cp);
//$body = mb_convert_encoding($body, 'HTML-ENTITIES', "UTF-8");
$body = mb_encode_numericentity($cp, [0x80, 0x10FFFF, 0, ~0], 'UTF-8');
$doc = new \DOMDocument();
@$doc->loadHTML($body);

View File

@@ -104,7 +104,11 @@ function html2bbcode($message)
$message = preg_replace('=<(\w+):(.+?)>=', '<removeme>', $message);
$message = preg_replace('=</(\w+):(.+?)>=', '</removeme>', $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;

View File

@@ -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;

View File

@@ -395,7 +395,11 @@ function oembed_format_object($j){
$ret .= "<br /><a href='$embedurl' rel='oembed'>$embedurl</a>";
}
$ret.="<br style='clear:left'></span>";
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.