117 lines
2.7 KiB
PHP
117 lines
2.7 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* HTML API: WP_HTML_Attribute_Token class
|
||
|
*
|
||
|
* @package WordPress
|
||
|
* @subpackage HTML-API
|
||
|
* @since 6.2.0
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Core class used by the HTML tag processor as a data structure for the attribute token,
|
||
|
* allowing to drastically improve performance.
|
||
|
*
|
||
|
* This class is for internal usage of the WP_HTML_Tag_Processor class.
|
||
|
*
|
||
|
* @access private
|
||
|
* @since 6.2.0
|
||
|
* @since 6.5.0 Replaced `end` with `length` to more closely match `substr()`.
|
||
|
*
|
||
|
* @see WP_HTML_Tag_Processor
|
||
|
*/
|
||
|
class WP_HTML_Attribute_Token {
|
||
|
/**
|
||
|
* Attribute name.
|
||
|
*
|
||
|
* @since 6.2.0
|
||
|
*
|
||
|
* @var string
|
||
|
*/
|
||
|
public $name;
|
||
|
|
||
|
/**
|
||
|
* Attribute value.
|
||
|
*
|
||
|
* @since 6.2.0
|
||
|
*
|
||
|
* @var int
|
||
|
*/
|
||
|
public $value_starts_at;
|
||
|
|
||
|
/**
|
||
|
* How many bytes the value occupies in the input HTML.
|
||
|
*
|
||
|
* @since 6.2.0
|
||
|
*
|
||
|
* @var int
|
||
|
*/
|
||
|
public $value_length;
|
||
|
|
||
|
/**
|
||
|
* The string offset where the attribute name starts.
|
||
|
*
|
||
|
* @since 6.2.0
|
||
|
*
|
||
|
* @var int
|
||
|
*/
|
||
|
public $start;
|
||
|
|
||
|
/**
|
||
|
* Byte length of text spanning the attribute inside a tag.
|
||
|
*
|
||
|
* This span starts at the first character of the attribute name
|
||
|
* and it ends after one of three cases:
|
||
|
*
|
||
|
* - at the end of the attribute name for boolean attributes.
|
||
|
* - at the end of the value for unquoted attributes.
|
||
|
* - at the final single or double quote for quoted attributes.
|
||
|
*
|
||
|
* Example:
|
||
|
*
|
||
|
* <div class="post">
|
||
|
* ------------ length is 12, including quotes
|
||
|
*
|
||
|
* <input type="checked" checked id="selector">
|
||
|
* ------- length is 6
|
||
|
*
|
||
|
* <a rel=noopener>
|
||
|
* ------------ length is 11
|
||
|
*
|
||
|
* @since 6.5.0 Replaced `end` with `length` to more closely match `substr()`.
|
||
|
*
|
||
|
* @var int
|
||
|
*/
|
||
|
public $length;
|
||
|
|
||
|
/**
|
||
|
* Whether the attribute is a boolean attribute with value `true`.
|
||
|
*
|
||
|
* @since 6.2.0
|
||
|
*
|
||
|
* @var bool
|
||
|
*/
|
||
|
public $is_true;
|
||
|
|
||
|
/**
|
||
|
* Constructor.
|
||
|
*
|
||
|
* @since 6.2.0
|
||
|
* @since 6.5.0 Replaced `end` with `length` to more closely match `substr()`.
|
||
|
*
|
||
|
* @param string $name Attribute name.
|
||
|
* @param int $value_start Attribute value.
|
||
|
* @param int $value_length Number of bytes attribute value spans.
|
||
|
* @param int $start The string offset where the attribute name starts.
|
||
|
* @param int $length Byte length of the entire attribute name or name and value pair expression.
|
||
|
* @param bool $is_true Whether the attribute is a boolean attribute with true value.
|
||
|
*/
|
||
|
public function __construct( $name, $value_start, $value_length, $start, $length, $is_true ) {
|
||
|
$this->name = $name;
|
||
|
$this->value_starts_at = $value_start;
|
||
|
$this->value_length = $value_length;
|
||
|
$this->start = $start;
|
||
|
$this->length = $length;
|
||
|
$this->is_true = $is_true;
|
||
|
}
|
||
|
}
|