从包含属性的字符串构建属性列表。

原型

wp_kses_hair_parse( string $attr )

描述

不修改输入。可能会返回“邪恶”输出。如果出现意外输入,则返回false而不是剥离事物。

参数

$attr (string) (Required) 从HTML元素到关闭HTML元素标记的属性列表

返回值

(array|bool)  在$ attr中找到的属性列表。失败时返回false。

源文件

路径:wp-includes/kses.php

<?php
...
function wp_kses_hair_parse( $attr ) {
	if ( '' === $attr ) {
		return array();
	}
	$regex =
	  '(?:'
	.     '[-a-zA-Z:]+'   // 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.
	$validation = "%^($regex)+$%";
	$extraction = "%$regex%";
	if ( 1 === preg_match( $validation, $attr ) ) {
		preg_match_all( $extraction, $attr, $attrarr );
		return $attrarr[0];
	} else {
		return false;
	}
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/wp_kses_hair_parse/