[ Index ]

PHP Cross Reference of phpBB-3.3.14-deutsch

title

Body

[close]

/vendor/s9e/text-formatter/src/Plugins/Keywords/ -> Parser.php (source)

   1  <?php
   2  
   3  /**
   4  * @package   s9e\TextFormatter
   5  * @copyright Copyright (c) 2010-2022 The s9e authors
   6  * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
   7  */
   8  namespace s9e\TextFormatter\Plugins\Keywords;
   9  
  10  use s9e\TextFormatter\Plugins\ParserBase;
  11  
  12  class Parser extends ParserBase
  13  {
  14      /**
  15      * {@inheritdoc}
  16      */
  17  	public function parse($text, array $matches)
  18      {
  19          $regexps  = $this->config['regexps'];
  20          $tagName  = $this->config['tagName'];
  21          $attrName = $this->config['attrName'];
  22  
  23          $onlyFirst = !empty($this->config['onlyFirst']);
  24          $keywords  = [];
  25  
  26          foreach ($regexps as $regexp)
  27          {
  28              preg_match_all($regexp, $text, $matches, PREG_OFFSET_CAPTURE);
  29  
  30              foreach ($matches[0] as list($value, $pos))
  31              {
  32                  if ($onlyFirst)
  33                  {
  34                      if (isset($keywords[$value]))
  35                      {
  36                          continue;
  37                      }
  38  
  39                      $keywords[$value] = 1;
  40                  }
  41  
  42                  $this->parser->addSelfClosingTag($tagName, $pos, strlen($value))
  43                               ->setAttribute($attrName, $value);
  44              }
  45          }
  46      }
  47  }


Generated: Mon Nov 25 19:05:08 2024 Cross-referenced by PHPXref 0.7.1