FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
DPlayer_for_Z-BlogPHP/function.php at master · MoePlayer/DPlayer_for_Z-BlogPHP · GitHub
MoePlayer
/
DPlayer_for_Z-BlogPHP
Public
Notifications
You must be signed in to change notification settings
Fork
3
Star
9
Code
Issues
0
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
DPlayer_for_Z-BlogPHP
/
function.php
Copy path
More file actions
More file actions
Latest commit
History
History
History
94 lines (90 loc) · 6.42 KB
Breadcrumbs
DPlayer_for_Z-BlogPHP
/
function.php
Copy path
File metadata and controls
94 lines (90 loc) · 6.42 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?php
class
DPlayer_class
{
function
parseCallback
(
$
post
,
$
config
) {
$
siteurl
=
$
config
->
siteurl
;
$
js
=
''
;
$
pattern
=
self
::
get_shortcode_regex
(
array
(
'
dplayer
'
));
preg_match_all
(
"
/
$
pattern
/
"
,
$
post
,
$
matches
);
if
(
empty
(
$
matches
[
0
]))
return
$
post
.
'
<div id="dpajax" style="display:none;"></div>
'
;
for
(
$
i
=
0
;
$
i
<
count
(
$
matches
[
0
]);
$
i
++) {
if
(
$
matches
[
1
][
$
i
] ==
'
[
'
and
$
matches
[
6
][
$
i
] ==
'
]
'
) {
$
dp
[
"
#dp#
$
i
#
"
] =
substr
(
$
matches
[
0
][
$
i
],
1
, -
1
);
$
out
=
empty
(
$
out
) ?
self
::
str_replace_once
(
$
matches
[
0
][
$
i
],
"
#dp#
$
i
#
"
,
$
post
) :
$
out
=
self
::
str_replace_once
(
$
matches
[
0
][
$
i
],
"
#dp#
$
i
#
"
,
$
out
);
}
else
{
$
atts
=
self
::
shortcode_parse_atts
(
self
::
str_replace_nbsp
(
$
matches
[
3
][
$
i
]));
if
(
isset
(
$
atts
[
'
url
'
])) {
$
data
=
array
(
'
id
'
=>
md5
(
$
siteurl
.
$
atts
[
'
url
'
]));
$
data
[
'
hotkey
'
] =
isset
(
$
atts
[
'
hotkey
'
]) ?
self
::
str2bool
(
$
atts
[
'
hotkey
'
]) : (
bool
)
$
config
->
hotkey
;
$
data
[
'
screenshot
'
] =
isset
(
$
atts
[
'
screenshot
'
]) ?
self
::
str2bool
(
$
atts
[
'
screenshot
'
]) : (
bool
)
$
config
->
screenshot
;
$
data
[
'
loop
'
] =
isset
(
$
atts
[
'
loop
'
]) ?
self
::
str2bool
(
$
atts
[
'
loop
'
]) : (
bool
)
$
config
->
loop
;
$
data
[
'
autoplay
'
] =
isset
(
$
atts
[
'
autoplay
'
]) ?
self
::
str2bool
(
$
atts
[
'
autoplay
'
]) : (
bool
)
$
config
->
autoplay
;
$
data
[
'
theme
'
] =
isset
(
$
atts
[
'
theme
'
]) ?
$
atts
[
'
theme
'
] :
$
config
->
theme
;
$
data
[
'
lang
'
] =
isset
(
$
atts
[
'
lang
'
]) ?
$
atts
[
'
lang
'
] :
$
config
->
lang
==
'
1
'
?
'
zh
'
:
'
en
'
;
$
data
[
'
preload
'
] =
isset
(
$
atts
[
'
preload
'
]) ?
$
atts
[
'
preload
'
] :
$
config
->
preload
==
'
1
'
?
'
metadata
'
:
$
config
->
preload
==
'
2
'
?
'
none
'
:
'
auto
'
;
$
data
[
'
video
'
] =
array_filter
(
array
(
'
url
'
=>
isset
(
$
atts
[
'
url
'
]) ?
$
atts
[
'
url
'
] :
null
,
'
pic
'
=>
isset
(
$
atts
[
'
pic
'
]) ?
$
atts
[
'
pic
'
] :
null
,
'
type
'
=>
isset
(
$
atts
[
'
type
'
]) ?
$
atts
[
'
type
'
] :
'
auto
'
));
$
data
[
'
danmaku
'
] =
array_filter
(
array
(
'
id
'
=>
isset
(
$
atts
[
'
id
'
]) ?
$
atts
[
'
id
'
] :
md5
(
$
data
[
'
id
'
]),
'
api
'
=>
isset
(
$
atts
[
'
api
'
]) ?
$
atts
[
'
api
'
] :
$
config
->
dmserver
,
'
token
'
=>
isset
(
$
atts
[
'
token
'
]) ?
$
atts
[
'
token
'
] :
md5
(
$
data
[
'
id
'
].
time
()),
'
maximum
'
=>
isset
(
$
atts
[
'
maximum
'
]) ?
$
atts
[
'
maximum
'
] :
$
config
->
maximum
,
'
addition
'
=>
isset
(
$
atts
[
'
addition
'
]) ?
explode
(
'
|
'
,
$
atts
[
'
addition
'
]) :
null
));
if
(
empty
(
$
data
[
'
danmaku
'
][
'
api
'
])
or
!
$
config
->
danmaku
)
$
data
[
'
danmaku
'
] =
null
;
if
(
isset
(
$
atts
[
'
danmu
'
]))
if
(!
self
::
str2bool
(
$
atts
[
'
danmu
'
]))
$
data
[
'
danmaku
'
] =
null
;
$
js
.=
"\n
DPlayerOptions.push(
"
.
self
::
json_encode_pretty
(
$
data
).
"
);
"
;
$
out
=
empty
(
$
out
) ?
self
::
str_replace_once
(
$
matches
[
0
][
$
i
],
'
<div id="dp
'
.
$
data
[
'
id
'
].
'
" class="dplayer"></div>
'
,
$
post
):
self
::
str_replace_once
(
$
matches
[
0
][
$
i
],
'
<div id="dp
'
.
$
data
[
'
id
'
].
'
" class="dplayer"></div>
'
,
$
out
);
}
}
}
$
out
.=
"
<div id=
\"
dpajax
\"
style=
\"
display:none;
\"
>
$
js
\n
</div>
"
;
if
(
isset
(
$
dp
))
foreach
(
$
dp
as
$
k
=>
$
v
)
$
out
=
str_replace
(
$
k
,
$
v
,
$
out
);
return
$
out
;
}
function
json_encode_pretty
(
$
src
) {
if
(
version_compare
(
PHP_VERSION
,
'
5.4.0
'
) >=
0
) {
return
json_encode
(
$
src
,
JSON_UNESCAPED_UNICODE
|
JSON_UNESCAPED_SLASHES
|
JSON_PRETTY_PRINT
);
}
else
{
$
src
=
urldecode
(
json_encode
(
self
::
json_encode_unescaped
(
$
src
)));
$
ret
=
''
;
$
pos
=
0
;
$
newline
=
"\n"
;
$
prevchar
=
''
;
$
length
=
strlen
(
$
src
);
$
indent
=
'
'
;
$
outofquotes
=
true
;
for
(
$
i
=
0
;
$
i
<=
$
length
;
$
i
++) {
$
char
=
substr
(
$
src
,
$
i
,
1
);
if
(
$
char
==
'
"
'
&&
$
prevchar
!=
'\\'
)
$
outofquotes
= !
$
outofquotes
;
elseif
((
$
char
==
'
}
'
||
$
char
==
'
]
'
) &&
$
outofquotes
) {
$
ret
.=
$
newline
;
$
pos
--;
for
(
$
j
=
0
;
$
j
<
$
pos
;
$
j
++)
$
ret
.=
$
indent
; }
$
ret
.=
$
char
;
if
((
$
char
==
'
,
'
||
$
char
==
'
{
'
||
$
char
==
'
[
'
) &&
$
outofquotes
) {
$
ret
.=
$
newline
;
if
(
$
char
==
'
{
'
||
$
char
==
'
[
'
)
$
pos
++;
for
(
$
j
=
0
;
$
j
<
$
pos
;
$
j
++)
$
ret
.=
$
indent
; }
$
prevchar
=
$
char
;
}
return
str_replace
(
array
(
'
":
'
,
'
"0"
'
,
'
"1"
'
,
'
"2"
'
,
'
"3"
'
,
'
""
'
),
array
(
'
":
'
,
'
0
'
,
'
1
'
,
'
2
'
,
'
3
'
,
'
0
'
),
$
ret
);
} }
function
json_encode_unescaped
(
$
src
) {
if
(
is_array
(
$
src
))
foreach
(
$
src
as
$
key
=>
$
val
)
$
out
[
urlencode
(
$
key
)] =
self
::
json_encode_unescaped
(
$
val
);
else
$
out
=
urlencode
(
$
src
);
return
$
out
; }
function
shortcode_parse_atts
(
$
text
) {
$
atts
=
array
();
$
pattern
=
'
/([\w-]+)\s*=\s*"([^"]*)"(?:\s|$)|([\w-]+)\s*=\s*
\'
([^
\'
]*)
\'
(?:\s|$)|([\w-]+)\s*=\s*([^\s
\'
"]+)(?:\s|$)|"([^"]*)"(?:\s|$)|(\S+)(?:\s|$)/
'
;
$
text
=
preg_replace
(
"
/[\x{00a0}\x{200b}]+/u
"
,
"
"
,
$
text
);
if
(
preg_match_all
(
$
pattern
,
$
text
,
$
match
,
PREG_SET_ORDER
)) {
foreach
(
$
match
as
$
m
) {
if
(!
empty
(
$
m
[
1
]))
$
atts
[
strtolower
(
$
m
[
1
])] =
stripcslashes
(
$
m
[
2
]);
elseif
(!
empty
(
$
m
[
3
]))
$
atts
[
strtolower
(
$
m
[
3
])] =
stripcslashes
(
$
m
[
4
]);
elseif
(!
empty
(
$
m
[
5
]))
$
atts
[
strtolower
(
$
m
[
5
])] =
stripcslashes
(
$
m
[
6
]);
elseif
(
isset
(
$
m
[
7
]) &&
strlen
(
$
m
[
7
]))
$
atts
[] =
stripcslashes
(
$
m
[
7
]);
elseif
(
isset
(
$
m
[
8
]))
$
atts
[] =
stripcslashes
(
$
m
[
8
]); }
foreach
(
$
atts
as
&
$
value
)
if
(
false
!==
strpos
(
$
value
,
'
<
'
))
if
(
1
!==
preg_match
(
'
/^[^<]*+(?:<[^>]*+>[^<]*+)*+$/
'
,
$
value
))
$
value
=
''
;
}
else
$
atts
=
ltrim
(
$
text
);
return
$
atts
;
}
function
get_shortcode_regex
(
$
tagnames
=
null
) {
return
'\\
[(
\\
[?)(
'
.
join
(
'
|
'
,
array_map
(
'
preg_quote
'
,
$
tagnames
)).
'
)(?![
\\
w-])([^
\\
]
\\
/]*(?:
\\
/(?!
\\
])[^
\\
]
\\
/]*)*?)(?:(
\\
/)
\\
]|
\\
](?:([^
\\
[]*+(?:
\\
[(?!
\\
/
\\
2
\\
])[^
\\
[]*+)*+)
\\
[
\\
/
\\
2
\\
])?)(
\\
]?)
'
; }
function
str2bool
(
$
str
) {
return
$
str
==
'
true
'
?
true
: (
$
str
==
'
false
'
?
false
:
$
str
); }
function
str_replace_nbsp
(
$
str
) {
return
strip_tags
(
htmlspecialchars_decode
(
str_replace
(
'
'
,
'
'
,
$
str
))); }
function
str_replace_once
(
$
n
,
$
r
,
$
h
) {
return
(
$
p
=
strpos
(
$
h
,
$
n
)) ===
false
?
$
h
:
substr_replace
(
$
h
,
$
r
,
$
p
,
strlen
(
$
n
)); }
}
Back
|
FazBrowse Home
|
New Git URL