wordpress-develop/src/wp-includes/html-api/class-wp-html-attribute-token.php
Andrew Ozz 39bfc2580d Introduce HTML API with HTML Tag Processor
This commit pulls in the HTML Tag Processor from the Gutenbeg repository.

The Tag Processor attempts to be an HTML5-spec-compliant parser that provides the ability in PHP to find specific HTML tags and then add, remove, or update attributes on that tag. It provides a safe and reliable way to modify the attribute on HTML tags.

More information: https://github.com/WordPress/wordpress-develop/pull/3920.

Props: antonvlasenko, bernhard-reiter, costdev, dmsnell, felixarntz, gziolo, hellofromtonya, zieladam, flixos90, ntsekouras, peterwilsoncc, swissspidy, andrewserong, onemaggie, get_dave, aristath, scruffian, justlevine, andraganescu, noisysocks, dlh, soean, cbirdsong, revgeorge, azaozz.
Fixes #57575.

git-svn-id: https://develop.svn.wordpress.org/trunk@55203 602fd350-edb4-49c9-b593-d223f7449a82
2023-02-03 01:03:59 +00:00

90 lines
1.8 KiB
PHP

<?php
/**
* HTML Tag Processor: Attribute token structure class.
*
* @package WordPress
* @subpackage HTML-API
* @since 6.2.0
*/
/**
* Data structure for the attribute token that allows to drastically improve performance.
*
* This class is for internal usage of the WP_HTML_Tag_Processor class.
*
* @access private
* @since 6.2.0
*
* @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;
/**
* The string offset after the attribute value or its name.
*
* @since 6.2.0
* @var int
*/
public $end;
/**
* Whether the attribute is a boolean attribute with value `true`.
*
* @since 6.2.0
* @var bool
*/
public $is_true;
/**
* Constructor.
*
* @since 6.2.0
*
* @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 $end The string offset after the attribute value or its name.
* @param bool $is_true Whether the attribute is a boolean attribute with true value.
*/
public function __construct( $name, $value_start, $value_length, $start, $end, $is_true ) {
$this->name = $name;
$this->value_starts_at = $value_start;
$this->value_length = $value_length;
$this->start = $start;
$this->end = $end;
$this->is_true = $is_true;
}
}