function wp_kses_bad_protocol_once($string, $allowed_protocols, $count = 1) { $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; }
/** * Sanitizes content from bad protocols and other characters. * * This function searches for URL protocols at the beginning of $string, while * handling whitespace and HTML entities. * * @since 1.0.0 * * @param string $string Content to check for bad protocols * @param string $allowed_protocols Allowed protocols * @return string Sanitized content */ function wp_kses_bad_protocol_once($string, $allowed_protocols) { $string2 = preg_split('/:|�*58;|�*3a;/i', $string, 2); if (isset($string2[1]) && !preg_match('%/\\?%', $string2[0])) { $string = wp_kses_bad_protocol_once2($string2[0], $allowed_protocols) . trim($string2[1]); } return $string; }
/** * Sanitizes content from bad protocols and other characters. * * This function searches for URL protocols at the beginning of $string, while * handling whitespace and HTML entities. * * @since 1.0.0 * * @param string $string Content to check for bad protocols * @param string $allowed_protocols Allowed protocols * @return string Sanitized content */ function wp_kses_bad_protocol_once($string, $allowed_protocols) { global $_kses_allowed_protocols; $_kses_allowed_protocols = $allowed_protocols; $string2 = preg_split('/:|:|:/i', $string, 2); if (isset($string2[1]) && !preg_match('%/\\?%', $string2[0])) { $string = wp_kses_bad_protocol_once2($string2[0]) . trim($string2[1]); } else { $string = preg_replace_callback('/^((&[^;]*;|[\\sA-Za-z0-9])*)' . '(:|:|&#[Xx]3[Aa];)\\s*/', 'wp_kses_bad_protocol_once2', $string); } return $string; }