[ Index ]

PHP Cross Reference of phpBB-3.3.14-deutsch

title

Body

[close]

/vendor/s9e/text-formatter/src/Plugins/Censor/ -> 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\Censor;
   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          $tagName      = $this->config['tagName'];
  20          $attrName     = $this->config['attrName'];
  21          $replacements = $this->config['replacements'] ?? [];
  22          foreach ($matches as $m)
  23          {
  24              if ($this->isAllowed($m[0][0]))
  25              {
  26                  continue;
  27              }
  28  
  29              $tag = $this->parser->addSelfClosingTag($tagName, $m[0][1], strlen($m[0][0]));
  30              foreach ($replacements as list($regexp, $replacement))
  31              {
  32                  if (preg_match($regexp, $m[0][0]))
  33                  {
  34                      $tag->setAttribute($attrName, $replacement);
  35                      break;
  36                  }
  37              }
  38          }
  39      }
  40  
  41      /**
  42      * Test whether given word is allowed
  43      *
  44      * @param  string $word
  45      * @return bool
  46      */
  47  	protected function isAllowed($word)
  48      {
  49          return (isset($this->config['allowed']) && preg_match($this->config['allowed'], $word));
  50      }
  51  }


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