wp_kses_hair_parse()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
wp_kses_hair_parse( string $attr ): array|false
Описание
Не изменяет входные данные. Может вернуть «вредоносный» результат.
В случае неожиданных входных данных возвращает false вместо удаления содержимого.
Основана на wp_kses_hair(), но не возвращает многомерный массив.
Оригинал (английский)
Does not modify input. May return “evil” output.
In case of unexpected input, returns false instead of stripping things.
Based on wp_kses_hair() but does not return a multi-dimensional array.
Параметры
$attr
string
обязательный
Возвращаемое значение
array|false
Исходный код
wp-includes/kses.php:1724
function wp_kses_hair_parse( $attr ) {
if ( '' === $attr ) {
return array();
}
$regex =
'(?:
[_a-zA-Z][-_a-zA-Z0-9:.]* # Attribute name.
|
\[\[?[^\[\]]+\]\]? # Shortcode in the name position implies unfiltered_html.
)
(?: # Attribute value.
\s*=\s* # All values begin with "=".
(?:
"[^"]*" # Double-quoted.
|
\'[^\']*\' # Single-quoted.
|
[^\s"\']+ # Non-quoted.
(?:\s|$) # Must have a space.
)
|
(?:\s|$) # If attribute has no value, space is required.
)
\s* # Trailing space is optional except as mentioned above.
';
/*
* Although it is possible to reduce this procedure to a single regexp,
* we must run that regexp twice to get exactly the expected result.
*
* Note: do NOT remove the `x` modifiers as they are essential for the above regex!
*/
$validation = "/^($regex)+$/x";
$extraction = "/$regex/x";
if ( 1 === preg_match( $validation, $attr ) ) {
preg_match_all( $extraction, $attr, $attrarr );
return $attrarr[0];
} else {
return false;
}
}
История изменений
| Версия | Описание |
|---|---|
| 4.2.3 | Introduced. |

