wp_kses_hair_parse()
Builds an attribute list from string containing attributes.
Does not modify input. May return "evil" output. In case of unexpected input, returns false instead of stripping things.
Based on wp_kses_hair() does not return a multi-dimensional array.
Хуков нет.
Возвращает
Массив|false
. List of attributes found in $attr. Returns false on failure.
Использование
wp_kses_hair_parse( $attr );
- $attr(строка) (обязательный)
- Attribute list from HTML element to closing HTML element tag.
Список изменений
С версии 4.2.3 | Введена. |
Код wp_kses_hair_parse() wp kses hair parse WP 6.4.1
function wp_kses_hair_parse( $attr ) { if ( '' === $attr ) { return array(); } // phpcs:disable Squiz.Strings.ConcatenationSpacing.PaddingFound -- don't remove regex indentation $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. // phpcs:enable /* * Although it is possible to reduce this procedure to a single regexp, * we must run that regexp twice to get exactly the expected result. */ $validation = "%^($regex)+$%"; $extraction = "%$regex%"; if ( 1 === preg_match( $validation, $attr ) ) { preg_match_all( $extraction, $attr, $attrarr ); return $attrarr[0]; } else { return false; } }