class TokenizerEscaping
CSS selector tokenizer escaping applier.
This component is a port of the Python cssselect library, which is copyright Ian Bicking, @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
@internal
Hierarchy
- class \Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerEscaping
Expanded class hierarchy of TokenizerEscaping
See also
https://github.com/SimonSapin/cssselect.
3 files declare their use of TokenizerEscaping
- HashHandler.php in vendor/
symfony/ css-selector/ Parser/ Handler/ HashHandler.php - IdentifierHandler.php in vendor/
symfony/ css-selector/ Parser/ Handler/ IdentifierHandler.php - StringHandler.php in vendor/
symfony/ css-selector/ Parser/ Handler/ StringHandler.php
File
-
vendor/
symfony/ css-selector/ Parser/ Tokenizer/ TokenizerEscaping.php, line 24
Namespace
Symfony\Component\CssSelector\Parser\TokenizerView source
class TokenizerEscaping {
public function __construct(TokenizerPatterns $patterns) {
}
public function escapeUnicode(string $value) : string {
$value = $this->replaceUnicodeSequences($value);
return preg_replace($this->patterns
->getSimpleEscapePattern(), '$1', $value);
}
public function escapeUnicodeAndNewLine(string $value) : string {
$value = preg_replace($this->patterns
->getNewLineEscapePattern(), '', $value);
return $this->escapeUnicode($value);
}
private function replaceUnicodeSequences(string $value) : string {
return preg_replace_callback($this->patterns
->getUnicodeEscapePattern(), function ($match) {
$c = hexdec($match[1]);
if (0x80 > ($c %= 0x200000)) {
return \chr($c);
}
if (0x800 > $c) {
return \chr(0xc0 | $c >> 6) . \chr(0x80 | $c & 0x3f);
}
if (0x10000 > $c) {
return \chr(0xe0 | $c >> 12) . \chr(0x80 | $c >> 6 & 0x3f) . \chr(0x80 | $c & 0x3f);
}
return '';
}, $value);
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
TokenizerEscaping::escapeUnicode | public | function | |
TokenizerEscaping::escapeUnicodeAndNewLine | public | function | |
TokenizerEscaping::replaceUnicodeSequences | private | function | |
TokenizerEscaping::__construct | public | function |