2008-02-10 22:38:53 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Concrete text token class.
|
2008-12-06 07:28:20 +00:00
|
|
|
*
|
2008-02-10 22:38:53 +00:00
|
|
|
* Text tokens comprise of regular parsed character data (PCDATA) and raw
|
|
|
|
* character data (from the CDATA sections). Internally, their
|
|
|
|
* data is parsed with all entities expanded. Surprisingly, the text token
|
|
|
|
* does have a "tag name" called #PCDATA, which is how the DTD represents it
|
|
|
|
* in permissible child nodes.
|
|
|
|
*/
|
|
|
|
class HTMLPurifier_Token_Text extends HTMLPurifier_Token
|
|
|
|
{
|
2008-12-06 07:28:20 +00:00
|
|
|
|
2013-07-16 11:56:14 +00:00
|
|
|
/**
|
|
|
|
* @type string
|
|
|
|
*/
|
|
|
|
public $name = '#PCDATA';
|
|
|
|
/**< PCDATA tag name compatible with DTD. */
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type string
|
|
|
|
*/
|
|
|
|
public $data;
|
|
|
|
/**< Parsed character data of text. */
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type bool
|
|
|
|
*/
|
|
|
|
public $is_whitespace;
|
|
|
|
|
|
|
|
/**< Bool indicating if node is whitespace. */
|
2008-12-06 07:28:20 +00:00
|
|
|
|
2008-02-10 22:38:53 +00:00
|
|
|
/**
|
|
|
|
* Constructor, accepts data and determines if it is whitespace.
|
2013-07-16 11:56:14 +00:00
|
|
|
* @param string $data String parsed character data.
|
|
|
|
* @param int $line
|
|
|
|
* @param int $col
|
2008-02-10 22:38:53 +00:00
|
|
|
*/
|
2013-07-16 11:56:14 +00:00
|
|
|
public function __construct($data, $line = null, $col = null)
|
|
|
|
{
|
2008-02-10 22:38:53 +00:00
|
|
|
$this->data = $data;
|
|
|
|
$this->is_whitespace = ctype_space($data);
|
|
|
|
$this->line = $line;
|
2013-07-16 11:56:14 +00:00
|
|
|
$this->col = $col;
|
2008-02-10 22:38:53 +00:00
|
|
|
}
|
2013-10-20 22:05:11 +00:00
|
|
|
|
|
|
|
public function toNode() {
|
|
|
|
return new HTMLPurifier_Node_Text($this->data, $this->is_whitespace, $this->line, $this->col);
|
|
|
|
}
|
2008-02-10 22:38:53 +00:00
|
|
|
}
|
2008-12-06 09:24:59 +00:00
|
|
|
|
|
|
|
// vim: et sw=4 sts=4
|