[ Index ]

PHP Cross Reference of phpBB-3.2.11-deutsch

title

Body

[close]

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

   1  <?php
   2  
   3  /*
   4  * @package   s9e\TextFormatter
   5  * @copyright Copyright (c) 2010-2019 The s9e Authors
   6  * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
   7  */
   8  namespace s9e\TextFormatter\Plugins\Autolink;
   9  use s9e\TextFormatter\Plugins\ParserBase;
  10  class Parser extends ParserBase
  11  {
  12  	public function parse($text, array $matches)
  13      {
  14          foreach ($matches as $m)
  15              $this->linkifyUrl($m[0][1], $this->trimUrl($m[0][0]));
  16      }
  17  	protected function linkifyUrl($tagPos, $url)
  18      {
  19          if (!\preg_match('/^[^:]+:|^www\\./i', $url))
  20              return;
  21          $endTag = $this->parser->addEndTag($this->config['tagName'], $tagPos + \strlen($url), 0);
  22          if ($url[3] === '.')
  23              $url = 'http://' . $url;
  24          $startTag = $this->parser->addStartTag($this->config['tagName'], $tagPos, 0, 1);
  25          $startTag->setAttribute($this->config['attrName'], $url);
  26          $startTag->pairWith($endTag);
  27      }
  28  	protected function trimUrl($url)
  29      {
  30          return \preg_replace('#(?![-=/)])[\\s!-.:-@[-`{-~\\pP]+$#Du', '', $url);
  31      }
  32  }


Generated: Wed Nov 11 20:33:01 2020 Cross-referenced by PHPXref 0.7.1