Searches for HTML tags, no matter how malformed.
Description
It also matches stray >
characters.
Parameters
$content
stringrequired- Content to filter.
$allowed_html
array[]|stringrequired- An array of allowed HTML elements and attributes, or a context name such as
'post'
. See wp_kses_allowed_html() for the list of accepted context names. $allowed_protocols
string[]required- Array of allowed URL protocols.
Source
function wp_kses_split( $content, $allowed_html, $allowed_protocols ) {
global $pass_allowed_html, $pass_allowed_protocols;
$pass_allowed_html = $allowed_html;
$pass_allowed_protocols = $allowed_protocols;
$token_pattern = <<<REGEX
~
( # Detect comments of various flavors before attempting to find tags.
(<!--.*?(-->|$)) # - Normative HTML comments.
|
</[^a-zA-Z][^>]*> # - Closing tags with invalid tag names.
|
<![^>]*> # - Invalid markup declaration nodes. Not all invalid nodes
# are matched so as to avoid breaking legacy behaviors.
)
|
(<[^>]*(>|$)|>) # Tag-like spans of text.
~x
REGEX;
return preg_replace_callback( $token_pattern, '_wp_kses_split_callback', $content );
}
Usage