HTMLPurifier_Lexer Klassenreferenz

Klassendiagramm für HTMLPurifier_Lexer:

Öffentliche Methoden

 __construct ()
 
 parseData ($string)
 
 tokenizeHTML ($string, $config, $context)
 
 normalize ($html, $config, $context)
 
 extractBody ($html)
 

Öffentliche, statische Methoden

static create ($config)
 

Datenfelder

 $tracksLineNumbers = false
 

Geschützte, statische Methoden

static escapeCDATA ($string)
 
static escapeCommentedCDATA ($string)
 
static removeIEConditional ($string)
 
static CDATACallback ($matches)
 

Geschützte Attribute

 $_special_entity2str
 

Ausführliche Beschreibung

Forgivingly lexes HTML (SGML-style) markup into tokens.

A lexer parses a string of SGML-style markup and converts them into corresponding tokens. It doesn't check for well-formedness, although its internal mechanism may make this automatic (such as the case of HTMLPurifier_Lexer_DOMLex). There are several implementations to choose from.

A lexer is HTML-oriented: it might work with XML, but it's not recommended, as we adhere to a subset of the specification for optimization reasons. This might change in the future. Also, most tokenizers are not expected to handle DTDs or PIs.

This class should not be directly instantiated, but you may use create() to retrieve a default copy of the lexer. Being a supertype, this class does not actually define any implementation, but offers commonly used convenience functions for subclasses.

Zu beachten
The unit tests will instantiate this class for testing purposes, as many of the utility functions require a class to be instantiated. This means that, even though this class is not runnable, it will not be declared abstract.
Zu beachten
We use tokens rather than create a DOM representation because DOM would:
  1. Require more processing and memory to create,
  2. Is not streamable, and
  3. Has the entire document structure (html and body not needed).
However, DOM is helpful in that it makes it easy to move around nodes without a lot of lookaheads to see when a tag is closed. This is a limitation of the token system and some workarounds would be nice.

Definiert in Zeile 42 der Datei Lexer.php.

Beschreibung der Konstruktoren und Destruktoren

__construct ( )

Definiert in Zeile 152 der Datei Lexer.php.

Dokumentation der Elementfunktionen

static CDATACallback (   $matches)
staticprotected

Callback function for escapeCDATA() that does the work.

Warnung
Though this is public in order to let the callback happen, calling it directly is not recommended.
Parameter
array$matchesPCRE matches array, with index 0 the entire match and 1 the inside of the CDATA section.
Rückgabe
string Escaped internals of the CDATA section.

Definiert in Zeile 279 der Datei Lexer.php.

static create (   $config)
static

Retrieves or sets the default Lexer as a Prototype Factory.

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

Zu beachten
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.
Parameter
HTMLPurifier_Config$config
Rückgabe
HTMLPurifier_Lexer
Ausnahmebehandlung
HTMLPurifier_Exception

Definiert in Zeile 69 der Datei Lexer.php.

Wird benutzt von HTMLPurifier\purify().

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

static escapeCDATA (   $string)
staticprotected

Translates CDATA sections into regular sections (through escaping).

Parameter
string$stringHTML string to process.
Rückgabe
string HTML with CDATA sections escaped.

Definiert in Zeile 233 der Datei Lexer.php.

Wird benutzt von normalize().

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

static escapeCommentedCDATA (   $string)
staticprotected

Special CDATA case that is especially convoluted for <script>

Parameter
string$stringHTML string to process.
Rückgabe
string HTML with CDATA sections escaped.

Definiert in Zeile 247 der Datei Lexer.php.

Wird benutzt von normalize().

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

extractBody (   $html)

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

Noch zu erledigen:
Consider making protected

Definiert in Zeile 345 der Datei Lexer.php.

Wird benutzt von normalize().

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

normalize (   $html,
  $config,
  $context 
)

Takes a piece of HTML and normalizes it by converting entities, fixing encoding, extracting bits, and other good stuff.

Parameter
string$htmlHTML.
HTMLPurifier_Config$config
HTMLPurifier_Context$context
Rückgabe
string
Noch zu erledigen:
Consider making protected

Definiert in Zeile 294 der Datei Lexer.php.

Benutzt HTMLPurifier_Encoder\cleanUTF8(), escapeCDATA(), escapeCommentedCDATA(), extractBody() und removeIEConditional().

Wird benutzt von HTMLPurifier_Lexer_PH5P\tokenizeHTML(), HTMLPurifier_Lexer_DirectLex\tokenizeHTML() und HTMLPurifier_Lexer_DOMLex\tokenizeHTML().

Hier ist ein Graph, der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

parseData (   $string)

Parses special entities into the proper characters.

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

Warnung
You should be able to treat the output of this function as completely parsed, but that's only because all other entities should have been handled previously in substituteNonSpecialEntities()
Parameter
string$stringString character data to be parsed.
Rückgabe
string Parsed character data.

Definiert in Zeile 186 der Datei Lexer.php.

Wird benutzt von HTMLPurifier_Lexer_DOMLex\createStartNode(), HTMLPurifier_Lexer_DirectLex\parseAttributeString() und HTMLPurifier_Lexer_DirectLex\tokenizeHTML().

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

static removeIEConditional (   $string)
staticprotected

Special Internet Explorer conditional comments should be removed.

Parameter
string$stringHTML string to process.
Rückgabe
string HTML with conditional comments removed.

Definiert in Zeile 261 der Datei Lexer.php.

Wird benutzt von normalize().

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

tokenizeHTML (   $string,
  $config,
  $context 
)

Lexes an HTML string into tokens.

Parameter
$stringString HTML.
HTMLPurifier_Config$config
HTMLPurifier_Context$context
Rückgabe
HTMLPurifier_Token[] array representation of HTML.

Definiert in Zeile 223 der Datei Lexer.php.

Dokumentation der Datenelemente

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

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

Definiert in Zeile 161 der Datei Lexer.php.

$tracksLineNumbers = false

Whether or not this lexer implements line-number/column-number tracking. If it does, set to true.

Definiert in Zeile 49 der Datei Lexer.php.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei:




Korrekturen, Hinweise und Ergänzungen

Bitte scheuen Sie sich nicht und melden Sie, was auf dieser Seite sachlich falsch oder irreführend ist, was ergänzt werden sollte, was fehlt usw. Dazu bitte oben aus dem Menü Seite den Eintrag Support Forum wählen. Es ist eine kostenlose Anmeldung erforderlich, um Anmerkungen zu posten. Unpassende Postings, Spam usw. werden kommentarlos entfernt.