WordPress Version: 6.3
/**
* Converts entities, while preserving already-encoded entities.
*
* @link https://www.php.net/htmlentities Borrowed from the PHP Manual user notes.
*
* @since 1.2.2
*
* @param string $text The text to be converted.
* @return string Converted text.
*/
function htmlentities2($text)
{
$translation_table = get_html_translation_table(HTML_ENTITIES, ENT_QUOTES);
$translation_table[chr(38)] = '&';
return preg_replace('/&(?![A-Za-z]{0,4}\w{2,3};|#[0-9]{2,3};)/', '&', strtr($text, $translation_table));
}