Converts and fixes HTML entities.
Description
This function normalizes HTML entities. It will convert AT&T
to the correct AT&T
, :
to :
, &#XYZZY;
to &#XYZZY;
and so on.
When $context
is set to ‘xml’, HTML entities are converted to their code points. For example, AT&T…&#XYZZY;
is converted to AT&T…&#XYZZY;
.
Parameters
$content
stringrequired- Content to normalize entities.
$context
stringoptional- Context for normalization. Can be either
'html'
or'xml'
.
Default'html'
.Default:
'html'
Source
function wp_kses_normalize_entities( $content, $context = 'html' ) {
// Disarm all entities by converting & to &
$content = str_replace( '&', '&', $content );
// Change back the allowed entities in our list of allowed entities.
if ( 'xml' === $context ) {
$content = preg_replace_callback( '/&([A-Za-z]{2,8}[0-9]{0,2});/', 'wp_kses_xml_named_entities', $content );
} else {
$content = preg_replace_callback( '/&([A-Za-z]{2,8}[0-9]{0,2});/', 'wp_kses_named_entities', $content );
}
$content = preg_replace_callback( '/&#(0*[0-9]{1,7});/', 'wp_kses_normalize_entities2', $content );
$content = preg_replace_callback( '/&#[Xx](0*[0-9A-Fa-f]{1,6});/', 'wp_kses_normalize_entities3', $content );
return $content;
}
User Contributed Notes
You must log in before being able to contribute a note or feedback.