Verzeichnisstruktur phpBB-3.3.15


Veröffentlicht
28.08.2024

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

Escaper.php

Zuletzt modifiziert: 02.04.2025, 15:03 - Dateigröße: 1.51 KiB


01  <?php declare(strict_types=1);
02   
03  /**
04  * @package   s9e\RegexpBuilder
05  * @copyright Copyright (c) 2016-2022 The s9e authors
06  * @license   http://www.opensource.org/licenses/mit-license.php The MIT License
07  */
08  namespace s9e\RegexpBuilder;
09   
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  }