wp_kses_check_attr_val
Performs different checks for attribute values.
Description
wp_kses_check_attr_val( (string) $value, (string) $vless, (string) $checkname, (mixed) $checkvalue );
The currently implemented checks are maxlen,, minlen, maxval., minval and valueless.
Parameters (4)
- 0. $value (string)
- Attribute value
- 1. $vless (string)
- Whether the value is valueless. Use y or n
- 2. $checkname (string)
- What
$checkvalue
is checking for. - 3. $checkvalue (mixed)
- What constraint the value should pass
Usage
if ( !function_exists( 'wp_kses_check_attr_val' ) ) { require_once ABSPATH . WPINC . '/kses.php'; } // Attribute value $value = ''; // Whether the value is valueless. Use 'y' or 'n' $vless = ''; // What $checkvalue is checking for. $checkname = ''; // What constraint the value should pass $checkvalue = null; // NOTICE! Understand what this does before running. $result = wp_kses_check_attr_val($value, $vless, $checkname, $checkvalue);
Defined (1)
The function is defined in the following location(s).
- /wp-includes/kses.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;
- }