%PDF- %PDF-
Direktori : /www/varak.net/wiki.varak.net/vendor/wikimedia/remex-html/RemexHtml/Tokenizer/ |
Current File : //www/varak.net/wiki.varak.net/vendor/wikimedia/remex-html/RemexHtml/Tokenizer/TokenGenerator.php |
<?php namespace RemexHtml\Tokenizer; /** * This class provides a convenient iterative view of the token stream, * implemented as a Generator. It is intended to be used as follows: * * foreach ( TokenGenerator::generate( $html, [] ) as $token ) { * ... * } * * Performance is slightly slower than a plain TokenHandler, probably due to * the need to convert event parameters to associative arrays. */ class TokenGenerator { protected $handler; protected $tokenizer; protected function __construct( $text, $options ) { $this->handler = new TokenGeneratorHandler( $this ); $this->tokenizer = new Tokenizer( $this->handler, $text, $options ); } /** * Get a Generator which iterates over all tokens in the supplied HTML * * @param string $text The HTML * @param array $options The Tokenizer options, see Tokenizer::__construct() * @return Generator */ public static function generate( $text, $options ) { $tg = new self( $text, $options ); $tg->tokenizer->beginStepping(); while ( $tg->tokenizer->step() ) { foreach ( $tg->handler->tokens as $token ) { yield $token; } $tg->handler->tokens = []; } foreach ( $tg->handler->tokens as $token ) { yield $token; } } }