Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4116278
Escaper.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
Escaper.php
View Options
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace
Symfony\Component\Yaml
;
/**
* Escaper encapsulates escaping rules for single and double-quoted
* YAML strings.
*
* @author Matthew Lewinski <matthew@lewinski.org>
*
* @internal
*/
class
Escaper
{
// Characters that would cause a dumped string to require double quoting.
public
const
REGEX_CHARACTER_TO_ESCAPE
=
"[
\\
x00-
\\
x1f]|
\x
7f|
\x
c2
\x
85|
\x
c2
\x
a0|
\x
e2
\x
80
\x
a8|
\x
e2
\x
80
\x
a9"
;
// Mapping arrays for escaping a double quoted string. The backslash is
// first to ensure proper escaping because str_replace operates iteratively
// on the input arrays. This ordering of the characters avoids the use of strtr,
// which performs more slowly.
private
const
ESCAPEES
=
[
'
\\
'
,
'
\\\\
'
,
'
\\
"'
,
'"'
,
"
\x
00"
,
"
\x
01"
,
"
\x
02"
,
"
\x
03"
,
"
\x
04"
,
"
\x
05"
,
"
\x
06"
,
"
\x
07"
,
"
\x
08"
,
"
\x
09"
,
"
\x
0a"
,
"
\x
0b"
,
"
\x
0c"
,
"
\x
0d"
,
"
\x
0e"
,
"
\x
0f"
,
"
\x
10"
,
"
\x
11"
,
"
\x
12"
,
"
\x
13"
,
"
\x
14"
,
"
\x
15"
,
"
\x
16"
,
"
\x
17"
,
"
\x
18"
,
"
\x
19"
,
"
\x
1a"
,
"
\x
1b"
,
"
\x
1c"
,
"
\x
1d"
,
"
\x
1e"
,
"
\x
1f"
,
"
\x
7f"
,
"
\x
c2
\x
85"
,
"
\x
c2
\x
a0"
,
"
\x
e2
\x
80
\x
a8"
,
"
\x
e2
\x
80
\x
a9"
,
];
private
const
ESCAPED
=
[
'
\\\\
'
,
'
\\
"'
,
'
\\\\
'
,
'
\\
"'
,
'
\\
0'
,
'
\\
x01'
,
'
\\
x02'
,
'
\\
x03'
,
'
\\
x04'
,
'
\\
x05'
,
'
\\
x06'
,
'
\\
a'
,
'
\\
b'
,
'
\\
t'
,
'
\\
n'
,
'
\\
v'
,
'
\\
f'
,
'
\\
r'
,
'
\\
x0e'
,
'
\\
x0f'
,
'
\\
x10'
,
'
\\
x11'
,
'
\\
x12'
,
'
\\
x13'
,
'
\\
x14'
,
'
\\
x15'
,
'
\\
x16'
,
'
\\
x17'
,
'
\\
x18'
,
'
\\
x19'
,
'
\\
x1a'
,
'
\\
e'
,
'
\\
x1c'
,
'
\\
x1d'
,
'
\\
x1e'
,
'
\\
x1f'
,
'
\\
x7f'
,
'
\\
N'
,
'
\\
_'
,
'
\\
L'
,
'
\\
P'
,
];
/**
* Determines if a PHP value would require double quoting in YAML.
*
* @param string $value A PHP value
*/
public
static
function
requiresDoubleQuoting
(
string
$value
):
bool
{
return
0
<
preg_match
(
'/'
.
self
::
REGEX_CHARACTER_TO_ESCAPE
.
'/u'
,
$value
);
}
/**
* Escapes and surrounds a PHP value with double quotes.
*
* @param string $value A PHP value
*/
public
static
function
escapeWithDoubleQuotes
(
string
$value
):
string
{
return
sprintf
(
'"%s"'
,
str_replace
(
self
::
ESCAPEES
,
self
::
ESCAPED
,
$value
));
}
/**
* Determines if a PHP value would require single quoting in YAML.
*
* @param string $value A PHP value
*/
public
static
function
requiresSingleQuoting
(
string
$value
):
bool
{
// Determines if a PHP value is entirely composed of a value that would
// require single quoting in YAML.
if
(
\in_array
(
strtolower
(
$value
),
[
'null'
,
'~'
,
'true'
,
'false'
,
'y'
,
'n'
,
'yes'
,
'no'
,
'on'
,
'off'
]))
{
return
true
;
}
// Determines if the PHP value contains any single characters that would
// cause it to require single quoting in YAML.
return
0
<
preg_match
(
'/[
\s
\'
"
\:
\{
\}
\[
\]
, &
\*
\#
\?
] |
\A
[
\-
? | < > = ! % @ `
\p
{Zs}]/xu'
,
$value
);
}
/**
* Escapes and surrounds a PHP value with single quotes.
*
* @param string $value A PHP value
*/
public
static
function
escapeWithSingleQuotes
(
string
$value
):
string
{
return
sprintf
(
"'%s'"
,
str_replace
(
'
\'
'
,
'
\'\'
'
,
$value
));
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Wed, Aug 19, 01:25 (2 w, 2 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
13/a8/5c8f3ba2512bf2d7b91cfcbe21b2
Default Alt Text
Escaper.php (3 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment