Sanitizes content from bad protocols and other characters.
Description
This function searches for URL protocols at the beginning of the string, while handling whitespace and HTML entities.
Parameters
$content
stringrequired- Content to check for bad protocols.
$allowed_protocols
string[]required- Array of allowed URL protocols.
$count
intoptional- Depth of call recursion to this function.
Default:
1
Source
function wp_kses_bad_protocol_once( $content, $allowed_protocols, $count = 1 ) {
$content = preg_replace( '/(�*58(?![;0-9])|�*3a(?![;a-f0-9]))/i', '$1;', $content );
$content2 = preg_split( '/:|�*58;|�*3a;|:/i', $content, 2 );
if ( isset( $content2[1] ) && ! preg_match( '%/\?%', $content2[0] ) ) {
$content = trim( $content2[1] );
$protocol = wp_kses_bad_protocol_once2( $content2[0], $allowed_protocols );
if ( 'feed:' === $protocol ) {
if ( $count > 2 ) {
return '';
}
$content = wp_kses_bad_protocol_once( $content, $allowed_protocols, ++$count );
if ( empty( $content ) ) {
return $content;
}
}
$content = $protocol . $content;
}
return $content;
}
Changelog
Version | Description |
---|---|
1.0.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.