HumHub Documentation (unofficial)

HTMLPurifier_Lexer_DirectLex extends HTMLPurifier_Lexer
in package

Our in-house implementation of a parser.

A pure PHP parser, DirectLex has absolutely no dependencies, making it a reasonably good default for PHP4. Written with efficiency in mind, it can be four times faster than HTMLPurifier_Lexer_PEARSax3, although it pales in comparison to HTMLPurifier_Lexer_DOMLex.

Tags
todo

Reread XML spec and document differences.

Table of Contents

Properties

$tracksLineNumbers  : mixed
Whether or not this lexer implements line-number/column-number tracking.
$_special_entity2str  : mixed
Most common entity to raw value conversion table for special entities.
$_whitespace  : mixed
Whitespace characters for str(c)spn.
$_entity_parser  : mixed

Methods

__construct()  : mixed
create()  : HTMLPurifier_Lexer
Retrieves or sets the default Lexer as a Prototype Factory.
extractBody()  : mixed
Takes a string of HTML (fragment or document) and returns the content
normalize()  : string
Takes a piece of HTML and normalizes it by converting entities, fixing encoding, extracting bits, and other good stuff.
parseAttr()  : mixed
parseAttributeString()  : array<string|int, mixed>
Takes the inside of an HTML tag and makes an assoc array of attributes.
parseData()  : string
Parses special entities into the proper characters.
parseText()  : mixed
tokenizeHTML()  : array<string|int, mixed>|array<string|int, HTMLPurifier_Token>
Lexes an HTML string into tokens.
CDATACallback()  : string
Callback function for escapeCDATA() that does the work.
escapeCDATA()  : string
Translates CDATA sections into regular sections (through escaping).
escapeCommentedCDATA()  : string
Special CDATA case that is especially convoluted for <script>
removeIEConditional()  : string
Special Internet Explorer conditional comments should be removed.
scriptCallback()  : string
Callback function for script CDATA fudge
substrCount()  : int
PHP 5.0.x compatible substr_count that implements offset and length

Properties

$tracksLineNumbers

Whether or not this lexer implements line-number/column-number tracking.

public mixed $tracksLineNumbers = \true
Tags
type

bool

$_special_entity2str

Most common entity to raw value conversion table for special entities.

protected mixed $_special_entity2str = array('&quot;' => '"', '&amp;' => '&', '&lt;' => '<', '&gt;' => '>', '&#39;' => "'", '&#039;' => "'", '&#x27;' => "'")
Tags
type

array

$_whitespace

Whitespace characters for str(c)spn.

protected mixed $_whitespace = " \t\r\n"
Tags
type

string

$_entity_parser

private mixed $_entity_parser
Tags
type

HTMLPurifier_EntityParser

Methods

__construct()

public __construct() : mixed

create()

Retrieves or sets the default Lexer as a Prototype Factory.

public static create(HTMLPurifier_Config $config) : HTMLPurifier_Lexer

By default HTMLPurifier_Lexer_DOMLex will be returned. There are a few exceptions involving special features that only DirectLex implements.

Parameters
$config : HTMLPurifier_Config
Tags
note

The behavior of this class has changed, rather than accepting a prototype object, it now accepts a configuration object. To specify your own prototype, set %Core.LexerImpl to it. This change in behavior de-singletonizes the lexer object.

throws
HTMLPurifier_Exception
Return values
HTMLPurifier_Lexer

extractBody()

Takes a string of HTML (fragment or document) and returns the content

public extractBody(mixed $html) : mixed
Parameters
$html : mixed
Tags
todo

Consider making protected

parseAttr()

public parseAttr(mixed $string, mixed $config) : mixed
Parameters
$string : mixed
$config : mixed

parseData()

Parses special entities into the proper characters.

public parseData(string $string, mixed $is_attr, mixed $config) : string

This string will translate escaped versions of the special characters into the correct ones.

Parameters
$string : string

String character data to be parsed.

$is_attr : mixed
$config : mixed
Return values
string

Parsed character data.

parseText()

public parseText(mixed $string, mixed $config) : mixed
Parameters
$string : mixed
$config : mixed

CDATACallback()

Callback function for escapeCDATA() that does the work.

protected static CDATACallback(array<string|int, mixed> $matches) : string
Parameters
$matches : array<string|int, mixed>

PCRE matches array, with index 0 the entire match and 1 the inside of the CDATA section.

Tags
warning

Though this is public in order to let the callback happen, calling it directly is not recommended.

Return values
string

Escaped internals of the CDATA section.

escapeCDATA()

Translates CDATA sections into regular sections (through escaping).

protected static escapeCDATA(string $string) : string
Parameters
$string : string

HTML string to process.

Return values
string

HTML with CDATA sections escaped.

escapeCommentedCDATA()

Special CDATA case that is especially convoluted for <script>

protected static escapeCommentedCDATA(string $string) : string
Parameters
$string : string

HTML string to process.

Return values
string

HTML with CDATA sections escaped.

removeIEConditional()

Special Internet Explorer conditional comments should be removed.

protected static removeIEConditional(string $string) : string
Parameters
$string : string

HTML string to process.

Return values
string

HTML with conditional comments removed.

scriptCallback()

Callback function for script CDATA fudge

protected scriptCallback(array<string|int, mixed> $matches) : string
Parameters
$matches : array<string|int, mixed>

, in form of array(opening tag, contents, closing tag)

Return values
string

substrCount()

PHP 5.0.x compatible substr_count that implements offset and length

protected substrCount(string $haystack, string $needle, int $offset, int $length) : int
Parameters
$haystack : string
$needle : string
$offset : int
$length : int
Return values
int

        
On this page

Search results