[VarDumper] make control characters non-selectable in HTML
This commit is contained in:
parent
0e9ded3188
commit
b0d4c99bf4
@ -44,6 +44,7 @@ class HtmlDumper extends CliDumper
|
|||||||
'key' => 'color:#56DB3A',
|
'key' => 'color:#56DB3A',
|
||||||
'index' => 'color:#1299DA',
|
'index' => 'color:#1299DA',
|
||||||
'ellipsis' => 'color:#FF8400',
|
'ellipsis' => 'color:#FF8400',
|
||||||
|
'ns' => 'user-select:none;',
|
||||||
);
|
);
|
||||||
|
|
||||||
private $displayOptions = array(
|
private $displayOptions = array(
|
||||||
@ -837,9 +838,21 @@ EOHTML
|
|||||||
}
|
}
|
||||||
|
|
||||||
$v = "<span class=sf-dump-{$style}>".preg_replace_callback(static::$controlCharsRx, function ($c) use ($map) {
|
$v = "<span class=sf-dump-{$style}>".preg_replace_callback(static::$controlCharsRx, function ($c) use ($map) {
|
||||||
$s = '<span class=sf-dump-default>';
|
$s = $b = '<span class="sf-dump-default';
|
||||||
$c = $c[$i = 0];
|
$c = $c[$i = 0];
|
||||||
|
if ($ns = "\r" === $c[$i] || "\n" === $c[$i])) {
|
||||||
|
$s .= ' sf-dump-ns';
|
||||||
|
}
|
||||||
|
$s .= '">';
|
||||||
do {
|
do {
|
||||||
|
if (("\r" === $c[$i] || "\n" === $c[$i]) !== $ns) {
|
||||||
|
$s .= '</span>'.$b;
|
||||||
|
if ($ns = !$ns) {
|
||||||
|
$s .= ' sf-dump-ns';
|
||||||
|
}
|
||||||
|
$s .= '">';
|
||||||
|
}
|
||||||
|
|
||||||
$s .= isset($map[$c[$i]]) ? $map[$c[$i]] : sprintf('\x%02X', ord($c[$i]));
|
$s .= isset($map[$c[$i]]) ? $map[$c[$i]] : sprintf('\x%02X', ord($c[$i]));
|
||||||
} while (isset($c[++$i]));
|
} while (isset($c[++$i]));
|
||||||
|
|
||||||
|
@ -127,3 +127,4 @@ pre.sf-dump {
|
|||||||
.dumped-tag > .sf-dump .sf-dump-ref { color: #6E6E6E; }
|
.dumped-tag > .sf-dump .sf-dump-ref { color: #6E6E6E; }
|
||||||
.dumped-tag > .sf-dump .sf-dump-ellipsis { color: #CC7832; max-width: 100em; }
|
.dumped-tag > .sf-dump .sf-dump-ellipsis { color: #CC7832; max-width: 100em; }
|
||||||
.dumped-tag > .sf-dump .sf-dump-ellipsis-path { max-width: 5em; }
|
.dumped-tag > .sf-dump .sf-dump-ellipsis-path { max-width: 5em; }
|
||||||
|
.dumped-tag > .sf-dump .sf-dump-ns { user-select: none; }
|
||||||
|
@ -61,7 +61,10 @@ array:24 [
|
|||||||
5 => -INF
|
5 => -INF
|
||||||
6 => {$intMax}
|
6 => {$intMax}
|
||||||
"str" => "déjà\\n"
|
"str" => "déjà\\n"
|
||||||
7 => b"é\\x00"
|
7 => b"""
|
||||||
|
é\\x00test\\t\\n
|
||||||
|
ing
|
||||||
|
"""
|
||||||
"[]" => []
|
"[]" => []
|
||||||
"res" => stream resource {@{$res}
|
"res" => stream resource {@{$res}
|
||||||
%A wrapper_type: "plainfile"
|
%A wrapper_type: "plainfile"
|
||||||
|
@ -63,8 +63,11 @@ class HtmlDumperTest extends TestCase
|
|||||||
<span class=sf-dump-key>4</span> => <span class=sf-dump-num>INF</span>
|
<span class=sf-dump-key>4</span> => <span class=sf-dump-num>INF</span>
|
||||||
<span class=sf-dump-key>5</span> => <span class=sf-dump-num>-INF</span>
|
<span class=sf-dump-key>5</span> => <span class=sf-dump-num>-INF</span>
|
||||||
<span class=sf-dump-key>6</span> => <span class=sf-dump-num>{$intMax}</span>
|
<span class=sf-dump-key>6</span> => <span class=sf-dump-num>{$intMax}</span>
|
||||||
"<span class=sf-dump-key>str</span>" => "<span class=sf-dump-str title="5 characters">d&%s;j&%s;<span class=sf-dump-default>\\n</span></span>"
|
"<span class=sf-dump-key>str</span>" => "<span class=sf-dump-str title="5 characters">d&%s;j&%s;<span class="sf-dump-default sf-dump-ns">\\n</span></span>"
|
||||||
<span class=sf-dump-key>7</span> => b"<span class=sf-dump-str title="2 binary or non-UTF-8 characters">&%s;<span class=sf-dump-default>\\x00</span></span>"
|
<span class=sf-dump-key>7</span> => b"""
|
||||||
|
<span class=sf-dump-str title="11 binary or non-UTF-8 characters">é<span class="sf-dump-default">\\x00</span>test<span class="sf-dump-default">\\t</span><span class="sf-dump-default sf-dump-ns">\\n</span></span>
|
||||||
|
<span class=sf-dump-str title="11 binary or non-UTF-8 characters">ing</span>
|
||||||
|
"""
|
||||||
"<span class=sf-dump-key>[]</span>" => []
|
"<span class=sf-dump-key>[]</span>" => []
|
||||||
"<span class=sf-dump-key>res</span>" => <span class=sf-dump-note>stream resource</span> <a class=sf-dump-ref>@{$res}</a><samp>
|
"<span class=sf-dump-key>res</span>" => <span class=sf-dump-note>stream resource</span> <a class=sf-dump-ref>@{$res}</a><samp>
|
||||||
%A <span class=sf-dump-meta>wrapper_type</span>: "<span class=sf-dump-str title="9 characters">plainfile</span>"
|
%A <span class=sf-dump-meta>wrapper_type</span>: "<span class=sf-dump-str title="9 characters">plainfile</span>"
|
||||||
|
@ -17,7 +17,7 @@ $g = fopen(__FILE__, 'r');
|
|||||||
$var = array(
|
$var = array(
|
||||||
'number' => 1, null,
|
'number' => 1, null,
|
||||||
'const' => 1.1, true, false, NAN, INF, -INF, PHP_INT_MAX,
|
'const' => 1.1, true, false, NAN, INF, -INF, PHP_INT_MAX,
|
||||||
'str' => "déjà\n", "\xE9\x00",
|
'str' => "déjà\n", "\xE9\x00test\t\ning",
|
||||||
'[]' => array(),
|
'[]' => array(),
|
||||||
'res' => $g,
|
'res' => $g,
|
||||||
'obj' => $foo,
|
'obj' => $foo,
|
||||||
|
Reference in New Issue
Block a user