wp_kses_bad_protocol_once

函数


wp_kses_bad_protocol_once ( $string, $allowed_protocols, $count = 1 )
参数
  • (string)
    $string
    Content to check for bad protocols.
    Required:
  • (string[])
    $allowed_protocols
    Array of allowed URL protocols.
    Required:
  • (int)
    $count
    Depth of call recursion to this function.
    Required:
    Default: 1
返回值
  • (string) Sanitized content.
定义位置
  • wp-includes/kses.php
    , line 1795
引入
1.0.0
弃用

Sanitizes content from bad protocols and other characters.

This function searches for URL protocols at the beginning of the string, while
handling whitespace and HTML entities.

function wp_kses_bad_protocol_once( $string, $allowed_protocols, $count = 1 ) {
	$string  = preg_replace( '/(*58(?![;0-9])|*3a(?![;a-f0-9]))/i', '$1;', $string );
	$string2 = preg_split( '/:|*58;|*3a;|:/i', $string, 2 );
	if ( isset( $string2[1] ) && ! preg_match( '%/?%', $string2[0] ) ) {
		$string   = trim( $string2[1] );
		$protocol = wp_kses_bad_protocol_once2( $string2[0], $allowed_protocols );
		if ( 'feed:' === $protocol ) {
			if ( $count > 2 ) {
				return '';
			}
			$string = wp_kses_bad_protocol_once( $string, $allowed_protocols, ++$count );
			if ( empty( $string ) ) {
				return $string;
			}
		}
		$string = $protocol . $string;
	}

	return $string;
}