[ Index ] |
PHP Cross Reference of phpBB-3.3.14-deutsch |
[Summary view] [Print] [Text view]
1 <?php declare(strict_types=1); 2 3 /** 4 * @package s9e\RegexpBuilder 5 * @copyright Copyright (c) 2016-2022 The s9e authors 6 * @license http://www.opensource.org/licenses/mit-license.php The MIT License 7 */ 8 namespace s9e\RegexpBuilder; 9 10 use function str_split; 11 12 class Escaper 13 { 14 /** 15 * @var array<string> Characters to escape in a character class 16 */ 17 public $inCharacterClass = ['-' => '\\-', '\\' => '\\\\', ']' => '\\]', '^' => '\\^']; 18 19 /** 20 * @var array<string> Characters to escape outside of a character class 21 */ 22 public $inLiteral = [ 23 '$' => '\\$', '(' => '\\(', ')' => '\\)', '*' => '\\*', 24 '+' => '\\+', '.' => '\\.', '?' => '\\?', '[' => '\\[', 25 '\\' => '\\\\', '^' => '\\^', '{' => '\\{', '|' => '\\|' 26 ]; 27 28 /** 29 * @param string $delimiter Delimiter used in the final regexp 30 */ 31 public function __construct(string $delimiter = '/') 32 { 33 foreach (str_split($delimiter, 1) as $char) 34 { 35 $this->inCharacterClass[$char] = '\\' . $char; 36 $this->inLiteral[$char] = '\\' . $char; 37 } 38 } 39 40 /** 41 * Escape given character to be used in a character class 42 * 43 * @param string $char Original character 44 * @return string Escaped character 45 */ 46 public function escapeCharacterClass(string $char): string 47 { 48 return $this->inCharacterClass[$char] ?? $char; 49 } 50 51 /** 52 * Escape given character to be used outside of a character class 53 * 54 * @param string $char Original character 55 * @return string Escaped character 56 */ 57 public function escapeLiteral(string $char): string 58 { 59 return $this->inLiteral[$char] ?? $char; 60 } 61 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Mon Nov 25 19:05:08 2024 | Cross-referenced by PHPXref 0.7.1 |