mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +00:00
FHEMWEB.pm: better JSON Escaping
git-svn-id: https://svn.fhem.de/fhem/trunk@7562 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
c5ac9bad54
commit
02c2e4f9ae
@ -2207,14 +2207,23 @@ FW_makeEdit($$$)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
my %jsTab = (
|
||||||
|
'\\' => '\\\\',
|
||||||
|
'"' => '\\"',
|
||||||
|
'\t' => '\\t',
|
||||||
|
'\r' => '\\r',
|
||||||
|
'\n' => '\\n',
|
||||||
|
'\b' => '\\b',
|
||||||
|
'\v' => '\\v'
|
||||||
|
);
|
||||||
sub
|
sub
|
||||||
FW_longpollInfo($$$$)
|
FW_longpollInfo($$$$)
|
||||||
{
|
{
|
||||||
my ($dev, $state, $html, $fmt) = @_;
|
my ($dev, $state, $html, $fmt) = @_;
|
||||||
if($fmt && $fmt eq "JSON") {
|
if($fmt && $fmt eq "JSON") {
|
||||||
$dev =~ s/([\\"])/\\$1/g;
|
$dev =~ s/([\\"\t\r\n\b\v])/$jsTab{$1}/ge;
|
||||||
$state =~ s/([\\"])/\\$1/g;
|
$state =~ s/([\\"\t\r\n\b\v])/$jsTab{$1}/ge;
|
||||||
$html =~ s/([\\"])/\\$1/g;
|
$html =~ s/([\\"\t\r\n\b\v])/$jsTab{$1}/ge;
|
||||||
return "[\"$dev\",\"$state\",\"$html\"]";
|
return "[\"$dev\",\"$state\",\"$html\"]";
|
||||||
} else {
|
} else {
|
||||||
return "$dev<<$state<<$html";
|
return "$dev<<$state<<$html";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user