Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
W
White Rabbit Switch - Software
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
86
Issues
86
List
Board
Labels
Milestones
Merge Requests
4
Merge Requests
4
CI / CD
CI / CD
Pipelines
Schedules
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
White Rabbit Switch - Software
Commits
f8f6c72d
Commit
f8f6c72d
authored
Feb 17, 2017
by
anne munoz
Committed by
Adam Wujek
Aug 02, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
www: json
added json to create dynamic webpage with ajax
parent
26f8b73a
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
73 additions
and
0 deletions
+73
-0
json.php
userspace/rootfs_override/var/www/json.php
+73
-0
No files found.
userspace/rootfs_override/var/www/json.php
0 → 100644
View file @
f8f6c72d
<?php
/*
* JSON FUNCTIONS for dynamic send-receive info
*
* @author Anne M. <anne@sevensols.com>
*
*/
function
__json_encode
(
$data
)
{
if
(
is_array
(
$data
)
||
is_object
(
$data
)
)
{
$islist
=
is_array
(
$data
)
&&
(
empty
(
$data
)
||
array_keys
(
$data
)
===
range
(
0
,
count
(
$data
)
-
1
)
);
if
(
$islist
)
{
$json
=
'['
.
implode
(
','
,
array_map
(
'__json_encode'
,
$data
)
)
.
']'
;
}
else
{
$items
=
Array
();
foreach
(
$data
as
$key
=>
$value
)
{
$items
[]
=
__json_encode
(
"
$key
"
)
.
':'
.
__json_encode
(
$value
);
}
$json
=
'{'
.
implode
(
','
,
$items
)
.
'}'
;
}
}
elseif
(
is_string
(
$data
)
)
{
# Escape non-printable or Non-ASCII characters.
# I also put the \\ character first, as suggested in comments on the 'addclashes' page.
$string
=
'"'
.
addcslashes
(
$data
,
"
\\\"\n\r\t
/"
.
chr
(
8
)
.
chr
(
12
))
.
'"'
;
$json
=
''
;
$len
=
strlen
(
$string
);
# Convert UTF-8 to Hexadecimal Codepoints.
for
(
$i
=
0
;
$i
<
$len
;
$i
++
)
{
$char
=
$string
[
$i
];
$c1
=
ord
(
$char
);
# Single byte;
if
(
$c1
<
128
)
{
$json
.=
(
$c1
>
31
)
?
$char
:
sprintf
(
"
\\
u%04x"
,
$c1
);
continue
;
}
# Double byte
$c2
=
ord
(
$string
[
++
$i
]);
if
(
(
$c1
&
32
)
===
0
)
{
$json
.=
sprintf
(
"
\\
u%04x"
,
(
$c1
-
192
)
*
64
+
$c2
-
128
);
continue
;
}
# Triple
$c3
=
ord
(
$string
[
++
$i
]);
if
(
(
$c1
&
16
)
===
0
)
{
$json
.=
sprintf
(
"
\\
u%04x"
,
((
$c1
-
224
)
<<
12
)
+
((
$c2
-
128
)
<<
6
)
+
(
$c3
-
128
));
continue
;
}
# Quadruple
$c4
=
ord
(
$string
[
++
$i
]);
if
(
(
$c1
&
8
)
===
0
)
{
$u
=
((
$c1
&
15
)
<<
2
)
+
((
$c2
>>
4
)
&
3
)
-
1
;
$w1
=
(
54
<<
10
)
+
(
$u
<<
6
)
+
((
$c2
&
15
)
<<
2
)
+
((
$c3
>>
4
)
&
3
);
$w2
=
(
55
<<
10
)
+
((
$c3
&
15
)
<<
6
)
+
(
$c4
-
128
);
$json
.=
sprintf
(
"
\\
u%04x
\\
u%04x"
,
$w1
,
$w2
);
}
}
}
else
{
# int, floats, bools, null
$json
=
strtolower
(
var_export
(
$data
,
true
));
}
return
$json
;
}
?>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment