Verzeichnisstruktur phpBB-3.2.0


Veröffentlicht
06.01.2017

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: 09.10.2024, 12:54 - Dateigröße: 3.78 KiB


001  <?php
002   
003  /*
004   * This file is part of the Symfony package.
005   *
006   * (c) Fabien Potencier <fabien@symfony.com>
007   *
008   * For the full copyright and license information, please view the LICENSE
009   * file that was distributed with this source code.
010   */
011   
012  namespace Symfony\Component\Yaml;
013   
014  /**
015   * Escaper encapsulates escaping rules for single and double-quoted
016   * YAML strings.
017   *
018   * @author Matthew Lewinski <matthew@lewinski.org>
019   *
020   * @internal
021   */
022  class Escaper
023  {
024      // Characters that would cause a dumped string to require double quoting.
025      const REGEX_CHARACTER_TO_ESCAPE = "[\\x00-\\x1f]|\xc2\x85|\xc2\xa0|\xe2\x80\xa8|\xe2\x80\xa9";
026   
027      // Mapping arrays for escaping a double quoted string. The backslash is
028      // first to ensure proper escaping because str_replace operates iteratively
029      // on the input arrays. This ordering of the characters avoids the use of strtr,
030      // which performs more slowly.
031      private static $escapees = array('\\', '\\\\', '\\"', '"',
032                                       "\x00",  "\x01",  "\x02",  "\x03",  "\x04",  "\x05",  "\x06",  "\x07",
033                                       "\x08",  "\x09",  "\x0a",  "\x0b",  "\x0c",  "\x0d",  "\x0e",  "\x0f",
034                                       "\x10",  "\x11",  "\x12",  "\x13",  "\x14",  "\x15",  "\x16",  "\x17",
035                                       "\x18",  "\x19",  "\x1a",  "\x1b",  "\x1c",  "\x1d",  "\x1e",  "\x1f",
036                                       "\xc2\x85", "\xc2\xa0", "\xe2\x80\xa8", "\xe2\x80\xa9");
037      private static $escaped = array('\\\\', '\\"', '\\\\', '\\"',
038                                       '\\0',   '\\x01', '\\x02', '\\x03', '\\x04', '\\x05', '\\x06', '\\a',
039                                       '\\b',   '\\t',   '\\n',   '\\v',   '\\f',   '\\r',   '\\x0e', '\\x0f',
040                                       '\\x10', '\\x11', '\\x12', '\\x13', '\\x14', '\\x15', '\\x16', '\\x17',
041                                       '\\x18', '\\x19', '\\x1a', '\\e',   '\\x1c', '\\x1d', '\\x1e', '\\x1f',
042                                       '\\N', '\\_', '\\L', '\\P');
043   
044      /**
045       * Determines if a PHP value would require double quoting in YAML.
046       *
047       * @param string $value A PHP value
048       *
049       * @return bool True if the value would require double quotes
050       */
051      public static function requiresDoubleQuoting($value)
052      {
053          return preg_match('/'.self::REGEX_CHARACTER_TO_ESCAPE.'/u', $value);
054      }
055   
056      /**
057       * Escapes and surrounds a PHP value with double quotes.
058       *
059       * @param string $value A PHP value
060       *
061       * @return string The quoted, escaped string
062       */
063      public static function escapeWithDoubleQuotes($value)
064      {
065          return sprintf('"%s"', str_replace(self::$escapees, self::$escaped, $value));
066      }
067   
068      /**
069       * Determines if a PHP value would require single quoting in YAML.
070       *
071       * @param string $value A PHP value
072       *
073       * @return bool True if the value would require single quotes
074       */
075      public static function requiresSingleQuoting($value)
076      {
077          // Determines if a PHP value is entirely composed of a value that would
078          // require single quoting in YAML.
079          if (in_array(strtolower($value), array('null', '~', 'true', 'false', 'y', 'n', 'yes', 'no', 'on', 'off'))) {
080              return true;
081          }
082   
083          // Determines if the PHP value contains any single characters that would
084          // cause it to require single quoting in YAML.
085          return preg_match('/[ \s \' " \: \{ \} \[ \] , & \* \# \?] | \A[ \- ? | < > = ! % @ ` ]/x', $value);
086      }
087   
088      /**
089       * Escapes and surrounds a PHP value with single quotes.
090       *
091       * @param string $value A PHP value
092       *
093       * @return string The quoted, escaped string
094       */
095      public static function escapeWithSingleQuotes($value)
096      {
097          return sprintf("'%s'", str_replace('\'', '\'\'', $value));
098      }
099  }
100