[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',
|
||||
'index' => 'color:#1299DA',
|
||||
'ellipsis' => 'color:#FF8400',
|
||||
'ns' => 'user-select:none;',
|
||||
);
|
||||
|
||||
private $displayOptions = array(
|
||||
@ -837,9 +838,21 @@ EOHTML
|
||||
}
|
||||
|
||||
$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];
|
||||
if ($ns = "\r" === $c[$i] || "\n" === $c[$i])) {
|
||||
$s .= ' sf-dump-ns';
|
||||
}
|
||||
$s .= '">';
|
||||
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]));
|
||||
} 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-ellipsis { color: #CC7832; max-width: 100em; }
|
||||
.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
|
||||
6 => {$intMax}
|
||||
"str" => "déjà\\n"
|
||||
7 => b"é\\x00"
|
||||
7 => b"""
|
||||
é\\x00test\\t\\n
|
||||
ing
|
||||
"""
|
||||
"[]" => []
|
||||
"res" => stream resource {@{$res}
|
||||
%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>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>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>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>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="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>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>"
|
||||
|
@ -17,7 +17,7 @@ $g = fopen(__FILE__, 'r');
|
||||
$var = array(
|
||||
'number' => 1, null,
|
||||
'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(),
|
||||
'res' => $g,
|
||||
'obj' => $foo,
|
||||
|
Reference in New Issue
Block a user