对属性值执行不同的检查。

原型

wp_kses_check_attr_val( string $value, string $vless, string $checkname, mixed $checkvalue )

描述

当前实施的检查是“maxlen”,“minlen”,“maxval”,“minval”和“无价值”。

参数

$value (string) (Required) 属性值

$vless (string) (Required) 价值是否毫无价值。使用’y’或’n’

$checkname (string) (Required) $ checkvalue正在检查什么。

$checkvalue (mixed) (Required) 值应该通过什么约束

返回值

(bool)  是否检查通行证

源文件

路径:wp-includes/kses.php

<?php
...
function wp_kses_check_attr_val($value, $vless, $checkname, $checkvalue) {
	$ok = true;
	switch (strtolower($checkname)) {
		case 'maxlen' :
			// The maxlen check makes sure that the attribute value has a length not
			// greater than the given value. This can be used to avoid Buffer Overflows
			// in WWW clients and various Internet servers.
			if (strlen($value) > $checkvalue)
				$ok = false;
			break;
		case 'minlen' :
			// The minlen check makes sure that the attribute value has a length not
			// smaller than the given value.
			if (strlen($value) < $checkvalue)
				$ok = false;
			break;
		case 'maxval' :
			// The maxval check does two things: it checks that the attribute value is
			// an integer from 0 and up, without an excessive amount of zeroes or
			// whitespace (to avoid Buffer Overflows). It also checks that the attribute
			// value is not greater than the given value.
			// This check can be used to avoid Denial of Service attacks.
			if (!preg_match('/^s{0,6}[0-9]{1,6}s{0,6}$/', $value))
				$ok = false;
			if ($value > $checkvalue)
				$ok = false;
			break;
		case 'minval' :
			// The minval check makes sure that the attribute value is a positive integer,
			// and that it is not smaller than the given value.
			if (!preg_match('/^s{0,6}[0-9]{1,6}s{0,6}$/', $value))
				$ok = false;
			if ($value < $checkvalue)
				$ok = false;
			break;
		case 'valueless' :
			// The valueless check makes sure if the attribute has a value
			// (like <a href="blah">) or not (<option selected>). If the given value
			// is a "y" or a "Y", the attribute must not have a value.
			// If the given value is an "n" or an "N", the attribute must have one.
			if (strtolower($checkvalue) != $vless)
				$ok = false;
			break;
	} // switch
	return $ok;
}
...
?>

其他

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