<?php
function
new_addslashes(
$string
){
if
(!
is_array
(
$string
))
return
addslashes
(
$string
);
foreach
(
$string
as
$key
=>
$val
)
$string
[
$key
] = new_addslashes(
$val
);
return
$string
;
}
function
new_stripslashes(
$string
) {
if
(!
is_array
(
$string
))
return
stripslashes
(
$string
);
foreach
(
$string
as
$key
=>
$val
)
$string
[
$key
] = new_stripslashes(
$val
);
return
$string
;
}
function
new_html_special_chars(
$string
) {
$encoding
= 'utf-8';
if
(
strtolower
(CHARSET)=='gbk')
$encoding
= 'ISO-8859-15';
if
(!
is_array
(
$string
))
return
htmlspecialchars(
$string
,ENT_QUOTES,
$encoding
);
foreach
(
$string
as
$key
=>
$val
)
$string
[
$key
] = new_html_special_chars(
$val
);
return
$string
;
}
function
new_html_entity_decode(
$string
) {
$encoding
= 'utf-8';
if
(
strtolower
(CHARSET)=='gbk')
$encoding
= 'ISO-8859-15';
return
html_entity_decode(
$string
,ENT_QUOTES,
$encoding
);
}
function
new_htmlentities(
$string
) {
$encoding
= 'utf-8';
if
(
strtolower
(CHARSET)=='gbk')
$encoding
= 'ISO-8859-15';
return
htmlentities(
$string
,ENT_QUOTES,
$encoding
);
}
function
safe_replace(
$string
) {
$string
=
str_replace
('%20','',
$string
);
$string
=
str_replace
('%27','',
$string
);
$string
=
str_replace
('%2527','',
$string
);
$string
=
str_replace
('*','',
$string
);
$string
=
str_replace
('
"','"
',
$string
);
$string
=
str_replace
(
"'"
,'',
$string
);
$string
=
str_replace
('
"','',$string); $string = str_replace(';','',$string); $string = str_replace('<','<',$string); $string = str_replace('>','>',$string); $string = str_replace("
{",'',
$string
);
$string
=
str_replace
('}','',
$string
);
$string
=
str_replace
('\\','',
$string
);
return
$string
;
}
function
remove_xss(
$string
) {
$string
= preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]+/S', '',
$string
);
$parm1
= Array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base');
$parm2
= Array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavailable', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterchange', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowenter', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload');
$parm
=
array_merge
(
$parm1
,
$parm2
);
for
(
$i
= 0;
$i
< sizeof(
$parm
);
$i
++) {
$pattern
= '/';
for
(
$j
= 0;
$j
<
strlen
(
$parm
[
$i
]);
$j
++) {
if
(
$j
> 0) {
$pattern
.= '(';
$pattern
.= '(&#[x|X]0([9][a][b]);?)?';
$pattern
.= '|(�([9][10][13]);?)?';
$pattern
.= ')?';
}
$pattern
.=
$parm
[
$i
][
$j
];
}
$pattern
.= '/i';
$string
= preg_replace(
$pattern
, ' ',
$string
);
}
return
$string
;
}
function
trim_unsafe_control_chars(
$str
) {
$rule
= '/[' .
chr
( 1 ) . '-' .
chr
( 8 ) .
chr
( 11 ) . '-' .
chr
( 12 ) .
chr
( 14 ) . '-' .
chr
( 31 ) . ']*/';
return
str_replace
(
chr
( 0 ), '', preg_replace (
$rule
, '',
$str
) );
}
function
trim_textarea(
$string
) {
$string
=
nl2br
(
str_replace
( ' ', ' ',
$string
) );
return
$string
;
}
function
format_js(
$string
,
$isjs
= 1) {
$string
=
addslashes
(
str_replace
(
array
(
"\r"
,
"\n"
,
"\t"
),
array
('', '', ''),
$string
));
return
$isjs
? 'document.write(
"'.$string.'"
);' :
$string
;
}
function
trim_script(
$str
) {
if
(
is_array
(
$str
)){
foreach
(
$str
as
$key
=>
$val
){
$str
[
$key
] = trim_script(
$val
);
}
}
else
{
$str
= preg_replace ( '/\<([\/]?)script([^\>]*?)\>/si', '<\\1script\\2>',
$str
);
$str
= preg_replace ( '/\<([\/]?)iframe([^\>]*?)\>/si', '<\\1iframe\\2>',
$str
);
$str
= preg_replace ( '/\<([\/]?)frame([^\>]*?)\>/si', '<\\1frame\\2>',
$str
);
$str
=
str_replace
( 'javascript:', 'javascript:',
$str
);
}
return
$str
;
}
function
get_url() {
$sys_protocal
= isset(
$_SERVER
['SERVER_PORT']) &&
$_SERVER
['SERVER_PORT'] == '443' ? 'https:
}
function
str_cut(
$string
,
$length
,
$dot
= '...') {
$strlen
=
strlen
(
$string
);
if
(
$strlen
<=
$length
)
return
$string
;
$string
=
str_replace
(
array
(' ',' ', '&', '
"', ''', '“', '”', '—', '<', '>', '·', '…'), array('∵',' ', '&', '"
',
"'"
, '“', '”', '—', '<', '>', '·', '…'),
$string
);
$strcut
= '';
if
(
strtolower
(CHARSET) == 'utf-8') {
$length
=
intval
(
$length
-
strlen
(
$dot
)-
$length
/3);
$n
=
$tn
=
$noc
= 0;
while
(
$n
<
strlen
(
$string
)) {
$t
= ord(
$string
[
$n
]);
if
(
$t
== 9 ||
$t
== 10 || (32 <=
$t
&&
$t
<= 126)) {
$tn
= 1;
$n
++;
$noc
++;
}
elseif
(194 <=
$t
&&
$t
<= 223) {
$tn
= 2;
$n
+= 2;
$noc
+= 2;
}
elseif
(224 <=
$t
&&
$t
<= 239) {
$tn
= 3;
$n
+= 3;
$noc
+= 2;
}
elseif
(240 <=
$t
&&
$t
<= 247) {
$tn
= 4;
$n
+= 4;
$noc
+= 2;
}
elseif
(248 <=
$t
&&
$t
<= 251) {
$tn
= 5;
$n
+= 5;
$noc
+= 2;
}
elseif
(
$t
== 252 ||
$t
== 253) {
$tn
= 6;
$n
+= 6;
$noc
+= 2;
}
else
{
$n
++;
}
if
(
$noc
>=
$length
) {
break
;
}
}
if
(
$noc
>
$length
) {
$n
-=
$tn
;
}
$strcut
=
substr
(
$string
, 0,
$n
);
$strcut
=
str_replace
(
array
('∵', '&', '
"', "
'
", '“', '”', '—', '<', '>', '·', '…'), array(' ', '&', '"
', ''', '“', '”', '—', '<', '>', '·', '…'),
$strcut
);
}
else
{
$dotlen
=
strlen
(
$dot
);
$maxi
=
$length
-
$dotlen
- 1;
$current_str
= '';
$search_arr
=
array
('&',' ', '
"', "
'", '“', '”', '—', '<', '>', '·', '…','∵');
$replace_arr
=
array
('&',' ', '"', ''', '“', '”', '—', '<', '>', '·', '…',' ');
$search_flip
=
array_flip
(
$search_arr
);
for
(
$i
= 0;
$i
<
$maxi
;
$i
++) {
$current_str
= ord(
$string
[
$i
]) > 127 ?
$string
[
$i
].
$string
[++
$i
] :
$string
[
$i
];
if
(in_array(
$current_str
,
$search_arr
)) {
$key
=
$search_flip
[
$current_str
];
$current_str
=
str_replace
(
$search_arr
[
$key
],
$replace_arr
[
$key
],
$current_str
);
}
$strcut
.=
$current_str
;
}
}
return
$strcut
.
$dot
;
}
function
ip() {
if
(
getenv
('HTTP_CLIENT_IP') &&
strcasecmp
(
getenv
('HTTP_CLIENT_IP'), 'unknown')) {
$ip
=
getenv
('HTTP_CLIENT_IP');
}
elseif
(
getenv
('HTTP_X_FORWARDED_FOR') &&
strcasecmp
(
getenv
('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$ip
=
getenv
('HTTP_X_FORWARDED_FOR');
}
elseif
(
getenv
('REMOTE_ADDR') &&
strcasecmp
(
getenv
('REMOTE_ADDR'), 'unknown')) {
$ip
=
getenv
('REMOTE_ADDR');
}
elseif
(isset(
$_SERVER
['REMOTE_ADDR']) &&
$_SERVER
['REMOTE_ADDR'] &&
strcasecmp
(
$_SERVER
['REMOTE_ADDR'], 'unknown')) {
$ip
=
$_SERVER
['REMOTE_ADDR'];
}
return
preg_match ( '/[\d\.]{7,15}/',
$ip
,
$matches
) ?
$matches
[0] : '';
}
function
get_cost_time() {
$microtime
= microtime ( TRUE );
return
$microtime
- SYS_START_TIME;
}
function
execute_time() {
$stime
=
explode
( ' ', SYS_START_TIME );
$etime
=
explode
( ' ', microtime () );
return
number_format ( (
$etime
[1] +
$etime
[0] -
$stime
[1] -
$stime
[0]), 6 );
}
function
string2array(
$data
) {
if
(
$data
== '')
return
array
();
$data
=
stripslashes
(
$data
);
@
eval
(
"\$array = $data;"
);
return
$array
;
}
function
array2string(
$data
,
$isformdata
= 1) {
if
(
$data
== '')
return
'';
if
(
$isformdata
)
$data
= new_stripslashes(
$data
);
return
addslashes
(var_export(
$data
, TRUE));
}
function
sizecount(
$filesize
) {
if
(
$filesize
>= 1073741824) {
$filesize
=
round
(
$filesize
/ 1073741824 * 100) / 100 .' GB';
}
elseif
(
$filesize
>= 1048576) {
$filesize
=
round
(
$filesize
/ 1048576 * 100) / 100 .' MB';
}
elseif
(
$filesize
>= 1024) {
$filesize
=
round
(
$filesize
/ 1024 * 100) / 100 . ' KB';
}
else
{
$filesize
=
$filesize
.' Bytes';
}
return
$filesize
;
}
function
sys_auth(
$string
,
$operation
= 'ENCODE',
$key
= '',
$expiry
= 0) {
$key_length
= 4;
$key
= md5(
$key
!= '' ?
$key
: app_base::load_config('system', 'auth_key'));
$fixedkey
= md5(
$key
);
$egiskeys
= md5(
substr
(
$fixedkey
, 16, 16));
$runtokey
=
$key_length
? (
$operation
== 'ENCODE' ?
substr
(md5(microtime(true)), -
$key_length
) :
substr
(
$string
, 0,
$key_length
)) : '';
$keys
= md5(
substr
(
$runtokey
, 0, 16) .
substr
(
$fixedkey
, 0, 16) .
substr
(
$runtokey
, 16) .
substr
(
$fixedkey
, 16));
$string
=
$operation
== 'ENCODE' ? sprintf('%010d',
$expiry
?
$expiry
+ time() : 0).
substr
(md5(
$string
.
$egiskeys
), 0, 16) .
$string
:
base64_decode
(
substr
(
$string
,
$key_length
));
$i
= 0;
$result
= '';
$string_length
=
strlen
(
$string
);
for
(
$i
= 0;
$i
<
$string_length
;
$i
++){
$result
.=
chr
(ord(
$string
{
$i
}) ^ ord(
$keys
{
$i
% 32}));
}
if
(
$operation
== 'ENCODE') {
return
$runtokey
.
str_replace
('=', '',
base64_encode
(
$result
));
}
else
{
if
((
substr
(
$result
, 0, 10) == 0 ||
substr
(
$result
, 0, 10) - time() > 0) &&
substr
(
$result
, 10, 16) ==
substr
(md5(
substr
(
$result
, 26).
$egiskeys
), 0, 16)) {
return
substr
(
$result
, 26);
}
else
{
return
'';
}
}
}
function
L(
$language
= 'no_language',
$pars
=
array
(),
$modules
= '') {
static
$LANG
=
array
();
static
$LANG_MODULES
=
array
();
static
$lang
= '';
if
(defined('IN_ADMIN')) {
$lang
= SYS_STYLE ? SYS_STYLE : 'zh-cn';
}
else
{
$lang
= app_base::load_config('system','lang');
}
if
(!
$LANG
) {
require_once
CODE_PATH.'languages'.DIRECTORY_SEPARATOR.
$lang
.DIRECTORY_SEPARATOR.'system.lang.php';
if
(defined('IN_ADMIN'))
require_once
CODE_PATH.'languages'.DIRECTORY_SEPARATOR.
$lang
.DIRECTORY_SEPARATOR.'system_menu.lang.php';
if
(
file_exists
(CODE_PATH.'languages'.DIRECTORY_SEPARATOR.
$lang
.DIRECTORY_SEPARATOR.ROUTE_M.'.lang.php'))
require_once
CODE_PATH.'languages'.DIRECTORY_SEPARATOR.
$lang
.DIRECTORY_SEPARATOR.ROUTE_M.'.lang.php';
}
if
(!
empty
(
$modules
)) {
$modules
=
explode
(',',
$modules
);
foreach
(
$modules
AS
$m
) {
if
(!isset(
$LANG_MODULES
[
$m
]))
require_once
CODE_PATH.'languages'.DIRECTORY_SEPARATOR.
$lang
.DIRECTORY_SEPARATOR.
$m
.'.lang.php';
}
}
if
(!
array_key_exists
(
$language
,
$LANG
)) {
return
$language
;
}
else
{
$language
=
$LANG
[
$language
];
if
(
$pars
) {
foreach
(
$pars
AS
$_k
=>
$_v
) {
$language
=
str_replace
('{'.
$_k
.'}',
$_v
,
$language
);
}
}
return
$language
;
}
}
function
template(
$module
= 'content',
$template
= 'index',
$style
= '') {
if
(
strpos
(
$module
, 'plugin/')!== false) {
$plugin
=
str_replace
('plugin/', '',
$module
);
return
p_template(
$plugin
,
$template
,
$style
);
}
$module
=
str_replace
('/', DIRECTORY_SEPARATOR,
$module
);
if
(!
empty
(
$style
) && preg_match('/([a-z0-9\-_]+)/is',
$style
)) {
}
elseif
(
empty
(
$style
) && !defined('STYLE')) {
if
(defined('SITEID')) {
$siteid
= SITEID;
}
else
{
$siteid
= param::get_cookie('siteid');
}
if
(!
$siteid
)
$siteid
= 1;
$sitelist
= getcache('sitelist','commons');
if
(!
empty
(
$siteid
)) {
$style
=
$sitelist
[
$siteid
]['default_style'];
}
}
elseif
(
empty
(
$style
) && defined('STYLE')) {
$style
= STYLE;
}
else
{
$style
= '
default
';
}
if
(!
$style
)
$style
= '
default
';
$template_cache
= app_base::load_sys_class('template_cache');
$compiledtplfile
= ROOT_PATH.'caches'.DIRECTORY_SEPARATOR.'caches_template'.DIRECTORY_SEPARATOR.
$style
.DIRECTORY_SEPARATOR.
$module
.DIRECTORY_SEPARATOR.
$template
.'.php';
if
(
file_exists
(CODE_PATH.'templates'.DIRECTORY_SEPARATOR.
$style
.DIRECTORY_SEPARATOR.
$module
.DIRECTORY_SEPARATOR.
$template
.'.html')) {
if
(!
file_exists
(
$compiledtplfile
) || (@
filemtime
(CODE_PATH.'templates'.DIRECTORY_SEPARATOR.
$style
.DIRECTORY_SEPARATOR.
$module
.DIRECTORY_SEPARATOR.
$template
.'.html') > @
filemtime
(
$compiledtplfile
))) {
$template_cache
->template_compile(
$module
,
$template
,
$style
);
}
}
else
{
$compiledtplfile
= ROOT_PATH.'caches'.DIRECTORY_SEPARATOR.'caches_template'.DIRECTORY_SEPARATOR.'
default
'.DIRECTORY_SEPARATOR.
$module
.DIRECTORY_SEPARATOR.
$template
.'.php';
if
(!
file_exists
(
$compiledtplfile
) || (
file_exists
(CODE_PATH.'templates'.DIRECTORY_SEPARATOR.'
default
'.DIRECTORY_SEPARATOR.
$module
.DIRECTORY_SEPARATOR.
$template
.'.html') &&
filemtime
(CODE_PATH.'templates'.DIRECTORY_SEPARATOR.'
default
'.DIRECTORY_SEPARATOR.
$module
.DIRECTORY_SEPARATOR.
$template
.'.html') >
filemtime
(
$compiledtplfile
))) {
$template_cache
->template_compile(
$module
,
$template
, '
default
');
}
elseif
(!
file_exists
(CODE_PATH.'templates'.DIRECTORY_SEPARATOR.'
default
'.DIRECTORY_SEPARATOR.
$module
.DIRECTORY_SEPARATOR.
$template
.'.html')) {
showmessage('Template does not exist.'.DIRECTORY_SEPARATOR.
$style
.DIRECTORY_SEPARATOR.
$module
.DIRECTORY_SEPARATOR.
$template
.'.html');
}
}
return
$compiledtplfile
;
}
function
my_error_handler(
$errno
,
$errstr
,
$errfile
,
$errline
) {
if
(
$errno
==8)
return
'';
$errfile
=
str_replace
(ROOT_PATH,'',
$errfile
);
if
(app_base::load_config('system','errorlog')) {
error_log
('<?php
exit
;?>'.
date
('m-d H:i:s',SYS_TIME).' | '.
$errno
.' | '.
str_pad
(
$errstr
,30).' | '.
$errfile
.' | '.
$errline
.
"\r\n"
, 3, CACHE_PATH.'
error_log
.php');
}
else
{
$str
= '<p style=
"font-size:12px;text-align:left; border-bottom:1px solid #9cc9e0; border-right:1px solid #9cc9e0;padding:1px 4px;color:#000000;font-family:Arial, Helvetica,sans-serif;"
><span>errorno:' .
$errno
. ',str:' .
$errstr
. ',file:<font color=
"blue"
>' .
$errfile
. '</font>,line' .
$errline
.'<br />Need Help?</span></p>';
echo
$str
;
}
}
function
showmessage(
$msg
,
$url_forward
= 'goback',
$ms
= 1250,
$dialog
= '',
$returnjs
= '') {
if
(defined('IN_ADMIN')) {
include
(admin::admin_tpl('showmessage', 'admin'));
}
else
{
include
(template('content', 'message'));
}
exit
;
}
function
str_exists(
$haystack
,
$needle
){
return
!(
strpos
(
$haystack
,
$needle
) === FALSE);
}
function
fileext(
$filename
) {
return
strtolower
(trim(
substr
(
strrchr
(
$filename
, '.'), 1, 10)));
}
function
tpl_cache(
$name
,
$times
= 0) {
$filepath
= 'tpl_data';
$info
= getcacheinfo(
$name
,
$filepath
);
if
(SYS_TIME -
$info
['
filemtime
'] >=
$times
) {
return
false;
}
else
{
return
getcache(
$name
,
$filepath
);
}
}
function
setcache(
$name
,
$data
,
$filepath
='',
$type
='file',
$config
='',
$timeout
=0) {
app_base::load_sys_class('cache_factory','',0);
if
(
$config
) {
$cacheconfig
= app_base::load_config('cache');
$cache
= cache_factory::get_instance(
$cacheconfig
)->get_cache(
$config
);
}
else
{
$cache
= cache_factory::get_instance()->get_cache(
$type
);
}
return
$cache
->set(
$name
,
$data
,
$timeout
, '',
$filepath
);
}
function
getcache(
$name
,
$filepath
='',
$type
='file',
$config
='') {
app_base::load_sys_class('cache_factory','',0);
if
(
$config
) {
$cacheconfig
= app_base::load_config('cache');
$cache
= cache_factory::get_instance(
$cacheconfig
)->get_cache(
$config
);
}
else
{
$cache
= cache_factory::get_instance()->get_cache(
$type
);
}
return
$cache
->get(
$name
, '', '',
$filepath
);
}
if
(
empty
(
$p
)){
return
false;
}
$regioncode
= getcache('1','linkage');
if
(
$regioncode
)
{
$l1
=
substr
(
$p
,0,2).'0000';
$L1_n
=
$regioncode
['data'][
$l1
]['name'];
$tb
=
array
('110000','120000','310000','500000');
if
(in_array(
$l1
,
$tb
)){
$l2
=
$l1
=
substr
(
$p
,0,2).
"0000-r"
;
}
else
{
$l2
=
substr
(
$p
,0,4).
"00"
;
}
$L2_n
=
$regioncode
['data'][
$l2
]['name'];
$L3_n
=
$regioncode
['data'][
$p
]['name'];
if
(
$L2_n
===
$L1_n
){
$res_p
=
$L1_n
.
$L3_n
;
}
else
{
$res_p
=
$L1_n
.
$L2_n
.
$L3_n
;
}
return
$res_p
;
}
else
{
return
'无行政区划地址';
}
}
if
(
empty
(
$trade
)){
return
false;
}
$trade_category
= getcache('3','linkage');
if
(
$trade_category
){
$t1
=
substr
(
$trade
,0,2);
$T_1
=
$trade_category
['data'][
$t1
]['name']?
$trade_category
['data'][
$t1
]['name']:'';
$t2
=
substr
(
$trade
,0,4);
$T_2
=
$trade_category
['data'][
$t2
]['name']?
$trade_category
['data'][
$t2
]['name']:'';
$t3
=
substr
(
$trade
,0,5);
$T_3
=
$trade_category
['data'][
$t3
]['name']?
$trade_category
['data'][
$t3
]['name']:'';
$T_4
=
$trade_category
['data'][
$trade
]['name']?
$trade_category
['data'][
$trade
]['name']:'';
if
(
$T_3
===
$T_4
){
$res_trade
=
$T_1
.'-'.
$T_2
.'-'.
$T_3
;
}
else
{
$res_trade
=
$T_1
.'-'.
$T_2
.'-'.
$T_3
.'-'.
$T_4
;
}
if
(
empty
(
$res_trade
)){
return
'行业类型数据不存在';
}
return
$res_trade
;
}
else
{
return
'行业类型数据不存在';
}
}
function
delcache(
$name
,
$filepath
='',
$type
='file',
$config
='') {
app_base::load_sys_class('cache_factory','',0);
if
(
$config
) {
$cacheconfig
= app_base::load_config('cache');
$cache
= cache_factory::get_instance(
$cacheconfig
)->get_cache(
$config
);
}
else
{
$cache
= cache_factory::get_instance()->get_cache(
$type
);
}
return
$cache
->
delete
(
$name
, '', '',
$filepath
);
}
function
getcacheinfo(
$name
,
$filepath
='',
$type
='file',
$config
='') {
app_base::load_sys_class('cache_factory');
if
(
$config
) {
$cacheconfig
= app_base::load_config('cache');
$cache
= cache_factory::get_instance(
$cacheconfig
)->get_cache(
$config
);
}
else
{
$cache
= cache_factory::get_instance()->get_cache(
$type
);
}
return
$cache
->cacheinfo(
$name
, '', '',
$filepath
);
}
function
to_sqls(
$data
,
$front
= ' AND ',
$in_column
= false) {
if
(
$in_column
&&
is_array
(
$data
)) {
$ids
= '\''.implode('\',\'',
$data
).'\'';
$sql
=
"$in_column IN ($ids)"
;
return
$sql
;
}
else
{
if
(
$front
== '') {
$front
= ' AND ';
}
if
(
is_array
(
$data
) &&
count
(
$data
) > 0) {
$sql
= '';
foreach
(
$data
as
$key
=>
$val
) {
$sql
.=
$sql
?
" $front $key = '$val' "
:
" $key = '$val' "
;
}
return
$sql
;
}
else
{
return
$data
;
}
}
}
function
pages(
$num
,
$curr_page
,
$perpage
= 20,
$urlrule
= '',
$array
=
array
(),
$setpages
= 10) {
if
(defined('URLRULE') &&
$urlrule
== '') {
$urlrule
= URLRULE;
$array
=
$GLOBALS
['URL_ARRAY'];
}
elseif
(
$urlrule
== '') {
$urlrule
= url_par('page={
$page
}');
}
$multipage
= '';
if
(
$num
>
$perpage
) {
$page
=
$setpages
+1;
$offset
=
ceil
(
$setpages
/2-1);
$pages
=
ceil
(
$num
/
$perpage
);
if
(defined('IN_ADMIN') && !defined('PAGES')) define('PAGES',
$pages
);
$from
=
$curr_page
-
$offset
;
$to
=
$curr_page
+
$offset
;
$more
= 0;
if
(
$page
>=
$pages
) {
$from
= 2;
$to
=
$pages
-1;
}
else
{
if
(
$from
<= 1) {
$to
=
$page
-1;
$from
= 2;
}
elseif
(
$to
>=
$pages
) {
$from
=
$pages
-(
$page
-2);
$to
=
$pages
-1;
}
$more
= 1;
}
if
(
$curr_page
>0) {
$multipage
.= ' <a href=
"'.pageurl($urlrule, $curr_page-1, $array).'"
class
=
"a1"
>'.L('previous').'</a>';
if
(
$curr_page
==1) {
$multipage
.= ' <span>1</span>';
}
elseif
(
$curr_page
>6 &&
$more
) {
$multipage
.= ' <a href=
"'.pageurl($urlrule, 1, $array).'"
>1</a>..';
}
else
{
$multipage
.= ' <a href=
"'.pageurl($urlrule, 1, $array).'"
>1</a>';
}
}
for
(
$i
=
$from
;
$i
<=
$to
;
$i
++) {
if
(
$i
!=
$curr_page
) {
$multipage
.= ' <a href=
"'.pageurl($urlrule, $i, $array).'"
>'.
$i
.'</a>';
}
else
{
$multipage
.= ' <span>'.
$i
.'</span>';
}
}
if
(
$curr_page
<
$pages
) {
if
(
$curr_page
<
$pages
-5 &&
$more
) {
$multipage
.= ' ..<a href=
"'.pageurl($urlrule, $pages, $array).'"
>'.
$pages
.'</a> <a href=
"'.pageurl($urlrule, $curr_page+1, $array).'"
class
=
"a1"
>'.L('next').'</a>';
}
else
{
$multipage
.= ' <a href=
"'.pageurl($urlrule, $pages, $array).'"
>'.
$pages
.'</a> <a href=
"'.pageurl($urlrule, $curr_page+1, $array).'"
class
=
"a1"
>'.L('next').'</a>';
}
}
elseif
(
$curr_page
==
$pages
) {
$multipage
.= ' <span>'.
$pages
.'</span> <a href=
"'.pageurl($urlrule, $curr_page, $array).'"
class
=
"a1"
>'.L('next').'</a>';
}
else
{
$multipage
.= ' <a href=
"'.pageurl($urlrule, $pages, $array).'"
>'.
$pages
.'</a> <a href=
"'.pageurl($urlrule, $curr_page+1, $array).'"
class
=
"a1"
>'.L('next').'</a>';
}
}
return
$multipage
;
}
function
pages1(
$num
,
$curr_page
,
$perpage
= 20,
$urlrule
= '',
$array
=
array
(),
$setpages
= 10) {
if
(defined('URLRULE') &&
$urlrule
== '') {
$urlrule
= URLRULE;
$array
=
$GLOBALS
['URL_ARRAY'];
}
elseif
(
$urlrule
== '') {
$urlrule
= url_par('page={
$page
}');
}
$multipage
= '';
if
(
$num
>
$perpage
) {
$page
=
$setpages
+1;
$offset
=
ceil
(
$setpages
/2-1);
$pages
=
ceil
(
$num
/
$perpage
);
if
(defined('IN_ADMIN') && !defined('PAGES')) define('PAGES',
$pages
);
$from
=
$curr_page
-
$offset
;
$to
=
$curr_page
+
$offset
;
$more
= 0;
if
(
$page
>=
$pages
) {
$from
= 2;
$to
=
$pages
-1;
}
else
{
if
(
$from
<= 1) {
$to
=
$page
-1;
$from
= 2;
}
elseif
(
$to
>=
$pages
) {
$from
=
$pages
-(
$page
-2);
$to
=
$pages
-1;
}
$more
= 1;
}
if
(
$curr_page
>0) {
$multipage
.= ' <a href=
"###"
onclick=
"$(\'#page\').val('.($curr_page-1).');$(\'#pageform\').submit();"
class
=
"a1"
>'.L('previous').'</a>';
if
(
$curr_page
==1) {
$multipage
.= ' <span>1</span>';
}
elseif
(
$curr_page
>6 &&
$more
) {
$multipage
.= ' <a href=
"###"
onclick=
"$(\'#page\').val(1);$(\'#pageform\').submit();"
>1</a>..';
}
else
{
$multipage
.= ' <a href=
"###"
onclick=
"$(\'#page\').val(1);$(\'#pageform\').submit();"
>1</a>';
}
}
for
(
$i
=
$from
;
$i
<=
$to
;
$i
++) {
if
(
$i
!=
$curr_page
) {
$multipage
.= ' <a href=
"###"
onclick=
"$(\'#page\').val('.$i.');$(\'#pageform\').submit();"
>'.
$i
.'</a>';
}
else
{
$multipage
.= ' <span>'.
$i
.'</span>';
}
}
if
(
$curr_page
<
$pages
) {
if
(
$curr_page
<
$pages
-5 &&
$more
) {
$multipage
.= ' ..<a href=
"###"
onclick=
"$(\'#page\').val('.$pages.');$(\'#pageform\').submit();"
>'.
$pages
.'</a> <a href=
"###"
onclick=
"$(\'#page\').val('.($curr_page+1).');$(\'#pageform\').submit();"
class
=
"a1"
>'.L('next').'</a>';
}
else
{
$multipage
.= ' <a href=
"###"
onclick=
"$(\'#page\').val('.$pages.');$(\'#pageform\').submit();"
>'.
$pages
.'</a> <a href=
"###"
onclick=
"$(\'#page\').val('.($curr_page+1).');$(\'#pageform\').submit();"
class
=
"a1"
>'.L('next').'</a>';
}
}
elseif
(
$curr_page
==
$pages
) {
$multipage
.= ' <span>'.
$pages
.'</span> <a href=
"###"
onclick=
"$(\'#page\').val('.$curr_page.');$(\'#pageform\').submit();"
class
=
"a1"
>'.L('next').'</a>';
}
else
{
$multipage
.= ' <a href=
"###"
onclick=
"$(\'#page\').val('.$pages.');$(\'#pageform\').submit();"
>'.
$pages
.'</a> <a href=
"###"
onclick=
"$(\'#page\').val('.($curr_page+1).');$(\'#pageform\').submit();"
class
=
"a1"
>'.L('next').'</a>';
}
}
return
$multipage
;
}
function
pages2(
$num
,
$curr_page
,
$pages
,
$urlrule
= '',
$array
=
array
(),
$setpages
= 10) {
if
(defined('URLRULE') &&
$urlrule
== '') {
$urlrule
= URLRULE;
$array
=
$GLOBALS
['URL_ARRAY'];
}
elseif
(
$urlrule
== '') {
$urlrule
= url_par('page={
$page
}');
}
$multipage
= '';
if
(
$pages
> 1) {
$page
=
$setpages
+1;
$offset
=
ceil
(
$setpages
/2-1);
if
(defined('IN_ADMIN') && !defined('PAGES')) define('PAGES',
$pages
);
$from
=
$curr_page
-
$offset
;
$to
=
$curr_page
+
$offset
;
$more
= 0;
if
(
$page
>=
$pages
) {
$from
= 2;
$to
=
$pages
-1;
}
else
{
if
(
$from
<= 1) {
$to
=
$page
-1;
$from
= 2;
}
elseif
(
$to
>=
$pages
) {
$from
=
$pages
-(
$page
-2);
$to
=
$pages
-1;
}
$more
= 1;
}
if
(
$curr_page
>0) {
$multipage
.= ' <a href=
"###"
onclick=
"$(\'#dosearch\').trigger(\'click\',['.($curr_page-1).']);"
class
=
"a1"
>'.L('previous').'</a>';
if
(
$curr_page
==1) {
$multipage
.= ' <span>1</span>';
}
elseif
(
$curr_page
>6 &&
$more
) {
$multipage
.= ' <a href=
"###"
onclick=
"$(\'#dosearch\').trigger(\'click\',[1]);"
>1</a>..';
}
else
{
$multipage
.= ' <a href=
"###"
onclick=
"$(\'#dosearch\').trigger(\'click\',[1]);"
>1</a>';
}
}
for
(
$i
=
$from
;
$i
<=
$to
;
$i
++) {
if
(
$i
!=
$curr_page
) {
$multipage
.= ' <a href=
"###"
onclick=
"$(\'#dosearch\').trigger(\'click\',['.$i.']);"
>'.
$i
.'</a>';
}
else
{
$multipage
.= ' <span>'.
$i
.'</span>';
}
}
if
(
$curr_page
<
$pages
) {
if
(
$curr_page
<
$pages
-5 &&
$more
) {
$multipage
.= ' ..<a href=
"###"
onclick=
"$(\'#dosearch\').trigger(\'click\',['.$pages.']);"
>'.
$pages
.'</a> <a href=
"###"
onclick=
"$(\'#dosearch\').trigger(\'click\',['.($curr_page+1).']);"
class
=
"a1"
>'.L('next').'</a>';
}
else
{
$multipage
.= ' <a href=
"###"
onclick=
"$(\'#dosearch\').trigger(\'click\',['.$pages.']);"
>'.
$pages
.'</a> <a href=
"###"
onclick=
"$(\'#dosearch\').trigger(\'click\',['.($curr_page+1).']);"
class
=
"a1"
>'.L('next').'</a>';
}
}
elseif
(
$curr_page
==
$pages
) {
$multipage
.= ' <span>'.
$pages
.'</span> <a href=
"###"
onclick=
"$(\'#dosearch\').trigger(\'click\',['.($curr_page).']);"
class
=
"a1"
>'.L('next').'</a>';
}
else
{
$multipage
.= ' <a href=
"###"
onclick=
"$(\'#dosearch\').trigger(\'click\',['.$pages.']);"
>'.
$pages
.'</a> <a href=
"###"
onclick=
"$(\'#dosearch\').trigger(\'click\',['.($curr_page+1).']);"
class
=
"a1"
>'.L('next').'</a>';
}
}
return
$multipage
;
}
function
pageurl(
$urlrule
,
$page
,
$array
=
array
()) {
if
(
strpos
(
$urlrule
, '~')) {
$urlrules
=
explode
('~',
$urlrule
);
$urlrule
=
$page
< 2 ?
$urlrules
[0] :
$urlrules
[1];
}
$findme
=
array
('{
$page
}');
$replaceme
=
array
(
$page
);
if
(
is_array
(
$array
))
foreach
(
$array
as
$k
=>
$v
) {
$findme
[] = '{$'.
$k
.'}';
$replaceme
[] =
$v
;
}
$url
=
str_replace
(
$findme
,
$replaceme
,
$urlrule
);
$url
=
str_replace
(
array
('http:
}
function
url_par(
$par
,
$url
= '') {
if
(
$url
== '')
$url
= get_url();
$pos
=
strpos
(
$url
, '?');
if
(
$pos
=== false) {
$url
.= '?'.
$par
;
}
else
{
$querystring
=
substr
(
strstr
(
$url
, '?'), 1);
parse_str
(
$querystring
,
$pars
);
$query_array
=
array
();
foreach
(
$pars
as
$k
=>
$v
) {
if
(
$k
!= 'page')
$query_array
[
$k
] =
$v
;
}
$querystring
= http_build_query(
$query_array
).'&'.
$par
;
$url
=
substr
(
$url
, 0,
$pos
).'?'.
$querystring
;
}
return
$url
;
}
function
is_email(
$email
) {
return
strlen
(
$email
) > 6 && preg_match(
"/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/"
,
$email
);
}
if
(!function_exists('iconv')) {
function
iconv(
$in_charset
,
$out_charset
,
$str
) {
$in_charset
=
strtoupper
(
$in_charset
);
$out_charset
=
strtoupper
(
$out_charset
);
if
(function_exists('mb_convert_encoding')) {
return
mb_convert_encoding(
$str
,
$out_charset
,
$in_charset
);
}
else
{
app_base::load_sys_func('iconv');
$in_charset
=
strtoupper
(
$in_charset
);
$out_charset
=
strtoupper
(
$out_charset
);
if
(
$in_charset
== 'UTF-8' && (
$out_charset
== 'GBK' ||
$out_charset
== 'GB2312')) {
return
utf8_to_gbk(
$str
);
}
if
((
$in_charset
== 'GBK' ||
$in_charset
== 'GB2312') &&
$out_charset
== 'UTF-8') {
return
gbk_to_utf8(
$str
);
}
return
$str
;
}
}
}
function
show_ad(
$siteid
,
$id
) {
$siteid
=
intval
(
$siteid
);
$id
=
intval
(
$id
);
if
(!
$id
|| !
$siteid
)
return
false;
$p
= app_base::load_model('poster_model');
$r
=
$p
->get_one(
array
('spaceid'=>
$id
, 'siteid'=>
$siteid
), 'disabled, setting', 'id ASC');
if
(
$r
['disabled'])
return
'';
if
(
$r
['setting']) {
$c
= string2array(
$r
['setting']);
}
else
{
$r
['code'] = '';
}
return
$c
['code'];
}
function
get_siteid() {
static
$siteid
;
if
(!
empty
(
$siteid
))
return
$siteid
;
if
(defined('IN_ADMIN')) {
if
(
$d
= param::get_cookie('siteid')) {
$siteid
=
$d
;
}
else
{
return
'';
}
}
else
{
$data
= getcache('sitelist', 'commons');
if
(!
is_array
(
$data
))
return
'1';
$site_url
= SITE_PROTOCOL.SITE_URL;
foreach
(
$data
as
$v
) {
if
(
$v
['url'] ==
$site_url
.'/')
$siteid
=
$v
['siteid'];
}
}
if
(
empty
(
$siteid
))
$siteid
= 1;
return
$siteid
;
}
function
get_nickname(
$userid
='',
$field
='') {
$return
= '';
if
(
is_numeric
(
$userid
)) {
$member_db
= app_base::load_model('member_model');
$memberinfo
=
$member_db
->get_one(
array
('userid'=>
$userid
));
if
(!
empty
(
$field
) &&
$field
!= 'nickname' && isset(
$memberinfo
[
$field
]) &&!
empty
(
$memberinfo
[
$field
])) {
$return
=
$memberinfo
[
$field
];
}
else
{
$return
= isset(
$memberinfo
['nickname']) && !
empty
(
$memberinfo
['nickname']) ?
$memberinfo
['nickname'].'('.
$memberinfo
['username'].')' :
$memberinfo
['username'];
}
}
else
{
if
(param::get_cookie('_nickname')) {
$return
.= '('.param::get_cookie('_nickname').')';
}
else
{
$return
.= '('.param::get_cookie('_username').')';
}
}
return
$return
;
}
function
get_memberinfo(
$userid
,
$field
='') {
if
(!
is_numeric
(
$userid
)) {
return
false;
}
else
{
static
$memberinfo
;
if
(!isset(
$memberinfo
[
$userid
])) {
$member_db
= app_base::load_model('member_model');
$memberinfo
[
$userid
] =
$member_db
->get_one(
array
('userid'=>
$userid
));
}
if
(!
empty
(
$field
) && !
empty
(
$memberinfo
[
$userid
][
$field
])) {
return
$memberinfo
[
$userid
][
$field
];
}
else
{
return
$memberinfo
[
$userid
];
}
}
}
function
get_memberinfo_buyusername(
$username
,
$field
='') {
if
(
empty
(
$username
)){
return
false;}
static
$memberinfo
;
if
(!isset(
$memberinfo
[
$username
])) {
$member_db
= app_base::load_model('member_model');
$memberinfo
[
$username
] =
$member_db
->get_one(
array
('username'=>
$username
));
}
if
(!
empty
(
$field
) && !
empty
(
$memberinfo
[
$username
][
$field
])) {
return
$memberinfo
[
$username
][
$field
];
}
else
{
return
$memberinfo
[
$username
];
}
}
function
menu_linkage(
$linkageid
= 0,
$id
= 'linkid',
$defaultvalue
= 0,
$defaultlabel
=
array
()) {
$linkageid
=
intval
(
$linkageid
);
$datas
=
array
();
$datas
= getcache(
$linkageid
,'linkage');
$infos
=
$datas
['data'];
if
(
$datas
['style']=='1') {
$title
=
$datas
['title'];
$container
= 'content'.create_randomnum(100, 999).
date
('is');
if
(!defined('DIALOG_INIT_1')) {
define('DIALOG_INIT_1', 1);
$string
.= '<script type=
"text/javascript"
src=
"'.JS_PATH.'dialog.js"
></script>';
}
if
(!defined('LINKAGE_INIT_1')) {
define('LINKAGE_INIT_1', 1);
$string
.= '<script type=
"text/javascript"
src=
"'.JS_PATH.'linkage/js/pop.js"
></script>';
}
$var_p
=
$defaultvalue
&& (ROUTE_A=='edit' || ROUTE_A=='account_manage_info' || ROUTE_A=='info_publish' || ROUTE_A=='orderinfo') ? menu_linkage_level(
$defaultvalue
,
$linkageid
,
$infos
) :
$datas
['title'];
$var_input
=
$defaultvalue
&& (ROUTE_A=='edit' || ROUTE_A=='account_manage_info' || ROUTE_A=='info_publish') ? '<input type=
"hidden"
name=
"info['.$id.']"
value=
"'.$defaultvalue.'"
>' : '<input type=
"hidden"
name=
"info['.$id.']"
value=
""
>';
$string
.= '<p name=
"'.$id.'"
value=
""
id=
"'.$id.'"
class
=
"ib"
>'.
$var_p
.'</p>'.
$var_input
.' <input type=
"button"
name=
"btn_'.$id.'"
class
=
"button"
value=
"'.L('linkage_select').'"
onclick=
"open_linkage(\''.$id.'\',\''.$title.'\','.$container.',\''.$linkageid.'\')"
>';
$string
.= '<script type=
"text/javascript"
>';
$string
.= '
var
returnid_'.
$id
.'= \''.
$id
.'\';';
$string
.= '
var
returnkeyid_'.
$id
.' = \''.
$linkageid
.'\';';
$string
.= '
var
'.
$container
.' =
new
Array(';
foreach
(
$infos
AS
$k
=>
$v
) {
if
(
$v
['parentid'] == 0) {
$s
[]='
new
Array(\''.
$v
['linkageid'].'\',\''.
$v
['name'].'\',\''.
$v
['parentid'].'\')';
}
else
{
continue
;
}
}
$s
= implode(',',
$s
);
$string
.=
$s
;
$string
.= ')';
$string
.= '</script>';
}
elseif
(
$datas
['style']=='2') {
if
(!defined('LINKAGE_INIT_1')) {
define('LINKAGE_INIT_1', 1);
$string
.= '<script type=
"text/javascript"
src=
"'.JS_PATH.'linkage/js/jquery.ld.js"
></script>';
}
$default_txt
= '';
if
(
$defaultvalue
) {
$default_txt
= menu_linkage_level(
$defaultvalue
,
$linkageid
,
$infos
);
$default_txt
= '[
"'.str_replace(' > ','"
,
"',$default_txt).'"
]';
}
$string
.=
$defaultvalue
&& (ROUTE_A=='edit' || ROUTE_A=='account_manage_info' || ROUTE_A=='info_publish') ? '<input type=
"hidden"
name=
"info['.$id.']"
id=
"'.$id.'"
value=
"'.$defaultvalue.'"
>' : '<input type=
"hidden"
name=
"info['.$id.']"
id=
"'.$id.'"
value=
""
>';
for
(
$i
=1;
$i
<=
$datas
['setting']['level'];
$i
++) {
$txt
= isset(
$defaultlabel
[
$i
]) ?
$defaultlabel
[
$i
] : '请选择';
$string
.='<select
class
=
"pc-select-'.$id.'"
name=
"'.$id.'-'.$i.'"
id=
"'.$id.'-'.$i.'"
width=
"100"
><option value=
""
>' .
$txt
. '</option></select> ';
}
$string
.= '<script type=
"text/javascript"
>
$(
function
(){
var
$ld5
= $(
".pc-select-'.$id.'"
);
$ld5
.ld({ajaxOptions : {
"url"
:
"'.APP_PATH.'api.php?op=get_linkage&act=ajax_select&keyid='.$linkageid.'"
},defaultParentId : 0,style : {
"width"
: 120}})
var
ld5_api =
$ld5
.ld(
"api"
);
$ld5
.bind(
"change"
,onchange);
function
onchange(e){
var
$target
= $(e.target);
var
index =
$ld5
.index(
$target
);
$(
"#'.$id.'-'.$i.'"
).remove();
$(
"#'.$id.'"
).val(
$ld5
.eq(index).show().val());
index ++;
$ld5
.eq(index).show(); }
})
</script>';
}
else
{
$title
=
$defaultvalue
?
$infos
[
$defaultvalue
]['name'] :
$datas
['title'];
$colObj
= create_randomnum(100, 999).
date
('is');
$string
= '';
if
(!defined('LINKAGE_INIT')) {
define('LINKAGE_INIT', 1);
$string
.= '<script type=
"text/javascript"
src=
"'.JS_PATH.'linkage/js/mln.colselect.js"
></script>';
if
(defined('IN_ADMIN')) {
$string
.= '<link href=
"'.JS_PATH.'linkage/style/admin.css"
rel=
"stylesheet"
type=
"text/css"
>';
}
else
{
$string
.= '<link href=
"'.JS_PATH.'linkage/style/css.css"
rel=
"stylesheet"
type=
"text/css"
>';
}
}
$string
.= '<input type=
"hidden"
name=
"info['.$id.']"
value=
"1"
><p id=
"'.$id.'"
></p>';
$string
.= '<script type=
"text/javascript"
>';
$string
.= '
var
colObj'.
$colObj
.' = {
"Items"
:[';
foreach
(
$infos
AS
$k
=>
$v
) {
$s
.= '{
"name"
:
"'.$v['name'].'"
,
"topid"
:
"'.$v['parentid'].'"
,
"colid"
:
"'.$k.'"
,
"value"
:
"'.$k.'"
,
"fun"
:
function
(){}},';
}
$string
.=
substr
(
$s
, 0, -1);
$string
.= ']};';
$string
.= '$(
"#'.$id.'"
).mlnColsel(colObj'.
$colObj
.',{';
$string
.= 'title:
"'.$title.'"
,';
$string
.= 'value:
"'.$defaultvalue.'"
,';
$string
.= 'width:100';
$string
.= '});';
$string
.= '</script>';
}
return
$string
;
}
function
menu_linkage_level(
$linkageid
,
$keyid
,
$infos
,
$result
=
array
()) {
if
(
array_key_exists
(
$linkageid
,
$infos
)) {
$result
[]=
$infos
[
$linkageid
]['name'];
return
menu_linkage_level(
$infos
[
$linkageid
]['parentid'],
$keyid
,
$infos
,
$result
);
}
krsort(
$result
);
return
implode(' > ',
$result
);
}
function
menu_level(
$menuid
,
$cache_file
,
$cache_path
= 'commons',
$key
= 'catname',
$parentkey
= 'parentid',
$linkstring
= ' > ',
$result
=
array
()) {
$menu_arr
= getcache(
$cache_file
,
$cache_path
);
if
(
array_key_exists
(
$menuid
,
$menu_arr
)) {
$result
[] =
$menu_arr
[
$menuid
][
$key
];
return
menu_level(
$menu_arr
[
$menuid
][
$parentkey
],
$cache_file
,
$cache_path
,
$key
,
$parentkey
,
$linkstring
,
$result
);
}
krsort(
$result
);
return
implode(
$linkstring
,
$result
);
}
function
get_linkage(
$linkageid
,
$keyid
,
$space
= '>',
$type
= 1,
$result
=
array
(),
$infos
=
array
()) {
if
(
$space
=='' || !isset(
$space
))
$space
= '>';
if
(!
$infos
) {
$datas
= getcache(
$keyid
,'linkage');
$infos
=
$datas
['data'];
}
if
(
$type
== 1 ||
$type
== 3 ||
$type
== 4) {
if
(
array_key_exists
(
$linkageid
,
$infos
)) {
$result
[]= (
$type
== 1) ?
$infos
[
$linkageid
]['name'] : ((
$type
== 4) ?
$linkageid
:
$infos
[
$linkageid
]);
return
get_linkage(
$infos
[
$linkageid
]['parentid'],
$keyid
,
$space
,
$type
,
$result
,
$infos
);
}
else
{
if
(
count
(
$result
)>0) {
krsort(
$result
);
if
(
$type
== 1 ||
$type
== 4)
$result
= implode(
$space
,
$result
);
return
$result
;
}
else
{
return
$result
;
}
}
}
else
{
return
$infos
[
$linkageid
]['name'];
}
}
function
is_ie() {
$useragent
=
strtolower
(
$_SERVER
['HTTP_USER_AGENT']);
if
((
strpos
(
$useragent
, 'opera') !== false) || (
strpos
(
$useragent
, 'konqueror') !== false))
return
false;
if
(
strpos
(
$useragent
, 'msie ') !== false)
return
true;
return
false;
}
function
file_down(
$filepath
,
$filename
= '') {
if
(!
$filename
)
$filename
=
basename
(
$filepath
);
if
(is_ie())
$filename
= rawurlencode(
$filename
);
$filetype
= fileext(
$filename
);
$filesize
= sprintf(
"%u"
,
filesize
(
$filepath
));
if
(ob_get_length() !== false) @ob_end_clean();
header('Pragma:
public
');
header('Last-Modified: '.
gmdate
('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: pre-check=0, post-check=0, max-age=0');
header('Content-Transfer-Encoding: binary');
header('Content-Encoding: none');
header('Content-type: '.
$filetype
);
header('Content-Disposition: attachment; filename=
"'.$filename.'"
');
header('Content-length: '.
$filesize
);
readfile(
$filepath
);
exit
;
}
function
is_utf8(
$string
) {
return
preg_match('%^(?:
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)*$%xs',
$string
);
}
function
id_encode(
$modules
,
$contentid
,
$siteid
) {
return
urlencode(
$modules
.'-'.
$contentid
.'-'.
$siteid
);
}
function
id_decode(
$id
) {
return
explode
('-',
$id
);
}
function
password(
$password
,
$encrypt
='') {
$pwd
=
array
();
$pwd
['encrypt'] =
$encrypt
?
$encrypt
: create_randomstr();
$pwd
['password'] = md5(md5(trim(
$password
)).
$pwd
['encrypt']);
return
$encrypt
?
$pwd
['password'] :
$pwd
;
}
function
create_randomstr(
$lenth
= 6) {
$fp
= @
fopen
('/dev/urandom','rb');
$pr_bits
= '';
if
(
$fp
!== FALSE) {
$pr_bits
.= @
fread
(
$fp
,
$lenth
/2);
@fclose(
$fp
);
}
return
bin2hex(
$pr_bits
);
* 生成随机数
* @param string
$lenth
长度
* @
return
string 字符串
*/
function
create_randomnum(
$min
,
$max
) {
$difference
=
$max
-
$min
;
$bytesNeeded
=
ceil
(
$difference
/256);
$fp
= @
fopen
('/dev/urandom','rb');
if
(
$fp
!== FALSE) {
$randomBytes
= @
fread
(
$fp
,
$bytesNeeded
);
@fclose(
$fp
);
}
$sum
= 0;
for
(
$a
= 0;
$a
<
$bytesNeeded
;
$a
++){
$sum
+= ord(
$randomBytes
[
$a
]);
}
$sum
=
$sum
% (
$difference
);
return
$sum
+
$min
;
* 检查密码长度是否符合规定
*
* @param STRING
$password
* @
return
TRUE
or
FALSE
*/
function
is_password(
$password
) {
$strlen
=
strlen
(
$password
);
if
(
$strlen
>= 6 &&
$strlen
<= 20)
return
true;
return
false;
}
function
is_badword(
$string
) {
$badwords
=
array
(
"\\"
,'&',' ',
"'"
,'
"','/','*',',','<','>',"
\r
","
\t
","
\n
","
#");
foreach
(
$badwords
as
$value
){
if
(
strpos
(
$string
,
$value
) !== FALSE) {
return
TRUE;
}
}
return
FALSE;
}
function
is_username(
$username
) {
$strlen
=
strlen
(
$username
);
if
(is_badword(
$username
) || !preg_match(
"/^[a-zA-Z0-9_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]+$/"
,
$username
)){
return
false;
}
elseif
( 20 <
$strlen
||
$strlen
< 2 ) {
return
false;
}
return
true;
}
function
check_in(
$id
,
$ids
= '',
$s
= ',') {
if
(!
$ids
)
return
false;
$ids
=
explode
(
$s
,
$ids
);
return
is_array
(
$id
) ?
array_intersect
(
$id
,
$ids
) : in_array(
$id
,
$ids
);
}
function
array_iconv(
$data
,
$input
= 'gbk',
$output
= 'utf-8') {
if
(!
is_array
(
$data
)) {
return
iconv(
$input
,
$output
,
$data
);
}
else
{
foreach
(
$data
as
$key
=>
$val
) {
if
(
is_array
(
$val
)) {
$data
[
$key
] = array_iconv(
$val
,
$input
,
$output
);
}
else
{
$data
[
$key
] = iconv(
$input
,
$output
,
$val
);
}
}
return
$data
;
}
}
function
thumb(
$imgurl
,
$width
= 100,
$height
= 100 ,
$autocut
= 1,
$smallpic
= 'nopic.gif') {
global
$image
;
$upload_url
= app_base::load_config('system','upload_url');
$upload_path
= app_base::load_config('system','upload_path');
if
(
empty
(
$imgurl
))
return
IMG_PATH.
$smallpic
;
$imgurl_replace
=
str_replace
(
$upload_url
, '',
$imgurl
);
if
(!
extension_loaded
('gd') ||
strpos
(
$imgurl_replace
, ':
app_base::load_sys_class('image','','0');
$image
=
new
image(1,0);
}
return
$image
->thumb(
$upload_path
.
$imgurl_replace
,
$upload_path
.
$newimgurl
,
$width
,
$height
, '',
$autocut
) ?
$upload_url
.
$newimgurl
:
$imgurl
;
}
function
watermark(
$source
,
$target
= '',
$siteid
) {
global
$image_w
;
if
(
empty
(
$source
))
return
$source
;
if
(!
extension_loaded
('gd') ||
strpos
(
$source
, ':
app_base::load_sys_class('image','','0');
$image_w
=
new
image(0,
$siteid
);
}
$image_w
->watermark(
$source
,
$target
);
return
$target
;
}
function
catpos(
$catid
,
$symbol
=' > '){
$category_arr
=
array
();
$siteids
= getcache('category_content','commons');
$siteid
=
$siteids
[
$catid
];
$category_arr
= getcache('category_content_'.
$siteid
,'commons');
if
(!isset(
$category_arr
[
$catid
]))
return
'';
$pos
= '';
$siteurl
= siteurl(
$category_arr
[
$catid
]['siteid']);
$arrparentid
=
array_filter
(
explode
(',',
$category_arr
[
$catid
]['arrparentid'].','.
$catid
));
foreach
(
$arrparentid
as
$catid
) {
$url
=
$category_arr
[
$catid
]['url'];
$pos
.= '<a href=
"'.$url.'"
>'.
$category_arr
[
$catid
]['catname'].'</a>'.
$symbol
;
}
return
$pos
;
}
function
get_sql_catid(
$file
= 'category_content_1',
$catid
= 0,
$module
= 'commons') {
$category
= getcache(
$file
,
$module
);
$catid
=
intval
(
$catid
);
if
(!isset(
$category
[
$catid
]))
return
false;
return
$category
[
$catid
]['child'] ?
" catid IN("
.
$category
[
$catid
]['arrchildid'].
") "
:
" catid=$catid "
;
}
function
subcat(
$parentid
= NULL,
$type
= NULL,
$self
= '0',
$siteid
= '') {
if
(
empty
(
$siteid
))
$siteid
= get_siteid();
$category
= getcache('category_content_'.
$siteid
,'commons');
foreach
(
$category
as
$id
=>
$cat
) {
if
(
$cat
['siteid'] ==
$siteid
&& (
$parentid
=== NULL ||
$cat
['parentid'] ==
$parentid
) && (
$type
=== NULL ||
$cat
['type'] ==
$type
))
$subcat
[
$id
] =
$cat
;
if
(
$self
== 1 &&
$cat
['catid'] ==
$parentid
&& !
$cat
['child'])
$subcat
[
$id
] =
$cat
;
}
return
$subcat
;
}
function
go(
$catid
,
$id
,
$allurl
= 0) {
static
$category
;
if
(
empty
(
$category
)) {
$siteids
= getcache('category_content','commons');
$siteid
=
$siteids
[
$catid
];
$category
= getcache('category_content_'.
$siteid
,'commons');
}
$id
=
intval
(
$id
);
if
(!
$id
|| !isset(
$category
[
$catid
]))
return
'';
$modelid
=
$category
[
$catid
]['modelid'];
if
(!
$modelid
)
return
'';
$db
= app_base::load_model('content_model');
$db
->set_model(
$modelid
);
$r
=
$db
->setCache()->get_one(
array
('id'=>
$id
), 'url');
if
(!
empty
(
$allurl
)) {
if
(
strpos
(
$r
['url'], ':
}
else
{
$r
['url'] =
$category
[
$catid
]['url'].
$r
['url'];
}
}
}
return
$r
['url'];
}
function
atturl(
$path
) {
if
(
strpos
(
$path
, ':/')) {
return
$path
;
}
else
{
$sitelist
= getcache('sitelist','commons');
$siteid
= get_siteid();
$siteurl
=
$sitelist
[
$siteid
]['domain'];
$domainlen
=
strlen
(
$sitelist
[
$siteid
]['domain'])-1;
$path
=
$siteurl
.
$path
;
$path
= substr_replace(
$path
, '/',
strpos
(
$path
, '
return
$path
;
}
}
function
module_exists(
$m
= '') {
if
(
$m
=='admin')
return
true;
$modules
= getcache('modules', 'commons');
$modules
=
array_keys
(
$modules
);
return
in_array(
$m
,
$modules
);
}
function
seo(
$siteid
,
$catid
= '',
$title
= '',
$description
= '',
$keyword
= '') {
if
(!
empty
(
$title
))
$title
=
strip_tags
(
$title
);
if
(!
empty
(
$description
))
$description
=
strip_tags
(
$description
);
if
(!
empty
(
$keyword
))
$keyword
=
str_replace
(' ', ',',
strip_tags
(
$keyword
));
$sites
= getcache('sitelist', 'commons');
$site
=
$sites
[
$siteid
];
$cat
=
array
();
if
(!
empty
(
$catid
)) {
$siteids
= getcache('category_content','commons');
$siteid
=
$siteids
[
$catid
];
$categorys
= getcache('category_content_'.
$siteid
,'commons');
$cat
=
$categorys
[
$catid
];
$cat
['setting'] = string2array(
$cat
['setting']);
}
$seo
['site_title'] =isset(
$site
['site_title']) && !
empty
(
$site
['site_title']) ?
$site
['site_title'] :
$site
['name'];
$seo
['keyword'] = !
empty
(
$keyword
) ?
$keyword
:
$site
['keywords'];
$seo
['description'] = isset(
$description
) && !
empty
(
$description
) ?
$description
: (isset(
$cat
['setting']['meta_description']) && !
empty
(
$cat
['setting']['meta_description']) ?
$cat
['setting']['meta_description'] : (isset(
$site
['description']) && !
empty
(
$site
['description']) ?
$site
['description'] : ''));
$seo
['title'] = (isset(
$title
) && !
empty
(
$title
) ?
$title
.' - ' : '').(isset(
$cat
['setting']['meta_title']) && !
empty
(
$cat
['setting']['meta_title']) ?
$cat
['setting']['meta_title'].' - ' : (isset(
$cat
['catname']) && !
empty
(
$cat
['catname']) ?
$cat
['catname'].' - ' : ''));
foreach
(
$seo
as
$k
=>
$v
) {
$seo
[
$k
] =
str_replace
(
array
(
"\n"
,
"\r"
), '',
$v
);
}
return
$seo
;
}
function
siteinfo(
$siteid
) {
static
$sitelist
;
if
(
empty
(
$sitelist
))
$sitelist
= getcache('sitelist','commons');
return
isset(
$sitelist
[
$siteid
]) ?
$sitelist
[
$siteid
] : '';
}
function
tjcode() {
if
(!module_exists('cnzz'))
return
false;
$config
= getcache('cnzz', 'commons');
if
(
empty
(
$config
)) {
return
false;
}
else
{
return
'<script src=\'http:
}
}
function
title_style(
$style
,
$html
= 1) {
$str
= '';
if
(
$html
)
$str
= ' style=
"'; $style_arr = explode(';',$style); if (!empty($style_arr[0])) $str .= 'color:'.$style_arr[0].';'; if (!empty($style_arr[1])) $str .= 'font-weight:'.$style_arr[1].';'; if ($html) $str .= '"
';
return
$str
;
}
function
siteurl(
$siteid
) {
static
$sitelist
;
return
WEB_PATH;
if
(!
$siteid
)
return
WEB_PATH;
if
(
empty
(
$sitelist
))
$sitelist
= getcache('sitelist','commons');
return
substr
(
$sitelist
[
$siteid
]['domain'],0,-1);}
function
upload_key(
$args
) {
$pc_auth_key
= md5(app_base::load_config('system','auth_key').
$_SERVER
['HTTP_USER_AGENT']);
$authkey
= md5(
$args
.
$pc_auth_key
);
return
$authkey
;
}
function
string2img(
$txt
,
$fonttype
= 5,
$fontsize
= 16,
$font
= '',
$fontcolor
= 'FF0000',
$transparent
= '1') {
if
(
empty
(
$txt
))
return
false;
if
(function_exists(
"imagepng"
)) {
$txt
= urlencode(sys_auth(
$txt
));
$txt
= '<img src=
"'.APP_PATH.'api.php?op=creatimg&txt='.$txt.'&fonttype='.$fonttype.'&fontsize='.$fontsize.'&font='.$font.'&fontcolor='.$fontcolor.'&transparent='.$transparent.'"
align=
"absmiddle"
>';
}
return
$txt
;
}
function
get_pc_version(
$type
='') {
$version
= app_base::load_config('version');
if
(
$type
==1) {
return
$version
['pc_version'];
}
elseif
(
$type
==2) {
return
$version
['pc_release'];
}
else
{
return
$version
['pc_version'].' '.
$version
['pc_release'];
}
}
function
runhook(
$method
) {
$time_start
= getmicrotime();
$data
= '';
$getpclass
= FALSE;
$hook_appid
= getcache('hook','plugins');
if
(!
empty
(
$hook_appid
)) {
foreach
(
$hook_appid
as
$appid
=>
$p
) {
$pluginfilepath
= CODE_PATH.'plugin'.DIRECTORY_SEPARATOR.
$p
.DIRECTORY_SEPARATOR.'hook.
class
.php';
$getpclass
= TRUE;
include_once
$pluginfilepath
;
}
$hook_appid
=
array_flip
(
$hook_appid
);
if
(
$getpclass
) {
$pclass
=
new
ReflectionClass('hook');
foreach
(
$pclass
->getMethods()
as
$r
) {
$legalmethods
[] =
$r
->getName();
}
}
if
(in_array(
$method
,
$legalmethods
)) {
foreach
(get_declared_classes()
as
$class
){
$refclass
=
new
ReflectionClass(
$class
);
if
(
$refclass
->isSubclassOf('hook')){
if
(
$_method
=
$refclass
->getMethod(
$method
)) {
$classname
=
$refclass
->getName();
if
(
$_method
->isPublic() &&
$_method
->isFinal()) {
plugin_stat(
$hook_appid
[
$classname
]);
$data
.=
$_method
->invoke(null);
}
}
}
}
}
return
$data
;
}
}
function
getmicrotime() {
list(
$usec
,
$sec
) =
explode
(
" "
,microtime());
return
((float)
$usec
+ (float)
$sec
);
}
function
p_template(
$plugin
= 'content',
$template
= 'index',
$style
='
default
') {
if
(!
$style
)
$style
= '
default
';
$template_cache
= app_base::load_sys_class('template_cache');
$compiledtplfile
= ROOT_PATH.'caches'.DIRECTORY_SEPARATOR.'caches_template'.DIRECTORY_SEPARATOR.
$style
.DIRECTORY_SEPARATOR.'plugin'.DIRECTORY_SEPARATOR.
$plugin
.DIRECTORY_SEPARATOR.
$template
.'.php';
if
(!
file_exists
(
$compiledtplfile
) || (
file_exists
(CODE_PATH.'plugin'.DIRECTORY_SEPARATOR.
$plugin
.DIRECTORY_SEPARATOR.'templates'.DIRECTORY_SEPARATOR.
$template
.'.html') &&
filemtime
(CODE_PATH.'plugin'.DIRECTORY_SEPARATOR.
$plugin
.DIRECTORY_SEPARATOR.'templates'.DIRECTORY_SEPARATOR.
$template
.'.html') >
filemtime
(
$compiledtplfile
))) {
$template_cache
->template_compile('plugin/'.
$plugin
,
$template
, '
default
');
}
elseif
(!
file_exists
(CODE_PATH.'plugin'.DIRECTORY_SEPARATOR.
$plugin
.DIRECTORY_SEPARATOR.'templates'.DIRECTORY_SEPARATOR.
$template
.'.html')) {
showmessage('Template does not exist.'.DIRECTORY_SEPARATOR.'plugin'.DIRECTORY_SEPARATOR.
$plugin
.DIRECTORY_SEPARATOR.
$template
.'.html');
}
return
$compiledtplfile
;
}
function
cache_page_start() {
$relate_url
= isset(
$_SERVER
['REQUEST_URI']) ? safe_replace(
$_SERVER
['REQUEST_URI']) :
$php_self
.(isset(
$_SERVER
['QUERY_STRING']) ? '?'.safe_replace(
$_SERVER
['QUERY_STRING']) :
$path_info
);
define('CACHE_PAGE_ID', md5(
$relate_url
));
$contents
= getcache(CACHE_PAGE_ID, 'page_tmp/'.
substr
(CACHE_PAGE_ID, 0, 2));
if
(
$contents
&&
intval
(
substr
(
$contents
, 15, 10)) > SYS_TIME) {
echo
substr
(
$contents
, 29);
exit
;
}
if
(!defined('HTML')) define('HTML',true);
return
true;
}
function
cache_page(
$ttl
= 360,
$isjs
= 0) {
if
(
$ttl
== 0 || !defined('CACHE_PAGE_ID'))
return
false;
$contents
= ob_get_contents();
if
(
$isjs
)
$contents
= format_js(
$contents
);
$contents
=
"<!--expiretime:"
.(SYS_TIME +
$ttl
).
"-->\n"
.
$contents
;
setcache(CACHE_PAGE_ID,
$contents
, 'page_tmp/'.
substr
(CACHE_PAGE_ID, 0, 2));
}
function
pc_file_get_contents(
$url
,
$timeout
=30) {
$stream
= stream_context_create(
array
('http' =>
array
('timeout' =>
$timeout
)));
return
@
file_get_contents
(
$url
, 0,
$stream
);
}
function
get_vid(
$contentid
= 0,
$catid
= 0,
$isspecial
= 0) {
static
$categorys
;
if
(!
$contentid
)
return
false;
if
(!
$isspecial
) {
if
(!
$catid
)
return
false;
$contentid
=
intval
(
$contentid
);
$catid
=
intval
(
$catid
);
$siteid
= get_siteid();
if
(!
$categorys
) {
$categorys
= getcache('category_content_'.
$siteid
, 'commons');
}
$modelid
=
$categorys
[
$catid
]['modelid'];
$video_content
= app_base::load_model('video_content_model');
$r
=
$video_content
->get_one(
array
('contentid'=>
$contentid
, 'modelid'=>
$modelid
), 'videoid', 'listorder ASC');
$video_store
=app_base::load_model('video_store_model');
return
$video_store
->get_one(
array
('videoid'=>
$r
['videoid']));
}
else
{
$special_content
= app_base::load_model('special_content_model');
$contentid
=
intval
(
$contentid
);
$video_store
=app_base::load_model('video_store_model');
$r
=
$special_content
->get_one(
array
('id'=>
$contentid
), 'videoid');
return
$video_store
->get_one(
array
('videoid'=>
$r
['videoid']));
}
}
function
dataformat(
$n
) {
$hours
=
floor
(
$n
/3600);
$minite
=
floor
(
$n
%3600/60);
$secend
=
floor
(
$n
%3600%60);
$minite
=
$minite
< 10 ?
"0"
.
$minite
:
$minite
;
$secend
=
$secend
< 10 ?
"0"
.
$secend
:
$secend
;
if
(
$n
>= 3600){
return
$hours
.
":"
.
$minite
.
":"
.
$secend
;
}
else
{
return
$minite
.
":"
.
$secend
;
}
}
function
httpResponse(
$status
,
$msg
=''){
$m
= app_base::load_model('category_model');
$CATEGORYS
=
$m
->select(
array
('parentid'=>0),'*','','listorder');
include
CODE_PATH . 'libs'.DIRECTORY_SEPARATOR.'data'.DIRECTORY_SEPARATOR.'http'.DIRECTORY_SEPARATOR.
$status
.'.php';
}
function
array_change_key_case_recursive(
$arr
)
{
if
(!
$arr
|| !
is_array
(
$arr
))
return
array
();
return
array_map
(
function
(
$item
){
if
(
is_array
(
$item
))
$item
= array_change_key_case_recursive(
$item
);
return
$item
;
},
array_change_key_case
(
$arr
));
}
function
visitauth(){
$vtime
= time();
$vsign
= md5(
"cuichuande@ideadata.com.cn#$%"
.
$vtime
);
return
"tm={$vtime}&sn={$vsign}"
;
}?>