/** * 作用:常用函数 * 官网:Http://www.sdcms.cn * 作者:IT平民 * =========================================================================== * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用; * 未经授权不允许对程序代码以任何形式任何目的的再发布。 * =========================================================================== **/ #系统资源 function C($a=null) { static $_config=[]; if(empty($a)) { return $_config; } if(is_string($a)) { if(!strpos($a,'.')) { $a=strtoupper($a); return isset($_config[$a])?$_config[$a]:null; } else { $a=explode('.',$a); $a[0]=strtoupper($a[0]); return isset($_config[$a[0]][$a[1]])?$_config[$a[0]][$a[1]]:null; } } if(is_array($a)) { $_config=array_merge($_config,array_change_key_case($a,CASE_UPPER)); return null; } return null; } #模板资源 function T($a=null) { static $_theme=[]; if(empty($a)) { return $_theme; } if(is_string($a)) { if(!strpos($a,'.')) { $a=strtoupper($a); return isset($_theme[$a])?$_theme[$a]:null; } else { $a=explode('.',$a); $a[0]=strtoupper($a[0]); return isset($_theme[$a[0]][$a[1]])?$_theme[$a[0]][$a[1]]:null; } } if(is_array($a)) { $_theme=array_merge($_theme,array_change_key_case($a,CASE_UPPER)); return null; } return null; } #F函数(get和post) function F($a,$b='') { $a=strtolower($a); if(!strpos($a,'.')) { $method='other'; } else { list($method,$a)=explode('.',$a,2); } switch ($method) { case 'get': $input=$_GET; break; case 'post': $input=$_POST; break; case 'other': switch (REQUEST_METHOD) { case 'GET': $input=$_GET; break; case 'POST': $input=$_POST; break; default: return ''; break; } break; default: return ''; break; } $data=isset($input[$a])?$input[$a]:$b; if(is_string($data)) { $data=enhtml(trim($data)); } return $data; } #去掉bom function require_bom($a) { $b=file_get_contents($a); $c[1]=substr($b,0,1); $c[2]=substr($b,1,1); $c[3]=substr($b,2,1); if(ord($c[1])==239&&ord($c[2])==187&&ord($c[3])==191) { $d=substr($b,3); file_put_contents($a,$d); } unset($b); unset($c); return require($a); } #筛选URL function filter_url($a,$b,$c) { #如果别名为空 if(empty($a)) { if(C('url_mode')==1) { return cateurl($b).$c; } $url1=U('goodslist','classid='.$b); $url2=U('goodslist','classid='.$b.$c); $url3=cateurl($b); $ext=C('url_ext'); if(strlen($ext)) { $url1=substr($url1,0,strlen($url1)-strlen($ext)); $url2=substr($url2,0,strlen($url2)-strlen($ext)); $url3=substr($url3,0,strlen($url3)-strlen($ext)); } $url=str_replace($url1,'',$url2); return $url3.$url.$ext; } else { $e=C('url_mid'); $d=str_replace('=',$e,$c); $d=str_replace('&',$e,$d); switch(C('url_mode')) { case '1': return WEB_DOMAIN."?m=$a".$c; break; case '2': if(isempty(C('pathinfo'))) { return WEB_DOMAIN."index.php/$a".$d.C('url_ext'); } else { return WEB_DOMAIN."index.php?".C('pathinfo')."=$a".$d.C('url_ext'); } break; case '3': return WEB_DOMAIN."$a".$d.C('url_ext'); break; } } } #URL组装 function U($a='',$b='',$c=1,$d=0) { return str_replace('+','%20',sdcms::geturl($a,$b,$c,$d)); } #$d是否不显示分站信息 #$e是否使用主域名 function N($a,$b=0,$c='',$d=0,$e=0) { if($b==0) $b=C('URL_MODE'); if(strlen($c)) { if($b==1) { $c='&'.$c; } else { $umid=C('url_mid'); $c=str_replace(['=','&'],$umid,$c); $c=$umid.$c; } } $str=''; $city=$GLOBALS['city']['root']; $isdomain=$GLOBALS['city']['isdomain']; $webroot=($a==C('admin'))?WEB_ROOT:WEB_DOMAIN; if($isdomain==1) { $webroot=WEB_ROOT; } if($e==1) { $webroot=WEB_DOMAIN; } if($city!='' && $d==0 && $isdomain==0) { switch($b) { case '1': $str='city='.$city.'&'; break; default: $str=$city.C('url_mid'); break; } } $last=C('url_cate_ext'); switch($b) { case '1': if($e==1) { return $webroot.'?city='.$a; } else { return $webroot.'?'.$str.'m='.$a.$c; } break; case '2': return $webroot.'index.php'.((isempty(C('pathinfo')))?'/':('?'.C('pathinfo').'=')).$str.$a.$c.$last; break; case '3': return $webroot.$str.$a.$c.$last; break; } } function is_really_writable($file) { if(is_dir($file)) { $file=rtrim($file,'/').'/'.'sdcmstest.html'; if(($fp = @fopen($file,'ab'))===FALSE) { return FALSE; } fclose($fp); @chmod($file,0777); unlink($file); return TRUE; } elseif(($fp = @fopen($file, 'ab'))===FALSE) { return FALSE; } fclose($fp); return TRUE; } function savefile($file,$data) { if(!is_really_writable($file)) { return false; } else { file_put_contents($file,$data); return true; } } #判断是否空值 function isempty($a) { return (SYSVERSION)?($a==''):(empty($a)); } function session($a,$b='') { $prefix=C('PREFIX').$a; if($b=='') { if(isset($_SESSION[$prefix])) { return $_SESSION[$prefix]; } else { return null; } } elseif($b=='[del]')#删除单个变量 { unset($_SESSION[$prefix]); } elseif($b=='[delete]')#删除全部 { session_unset(); session_destroy(); } else { $_SESSION[$prefix]=$b; } } function cookie($a,$b='') { $prefix=C('PREFIX').$a; if($b=='') { if(isset($_COOKIE[$prefix])) { return $_COOKIE[$prefix]; } else { return null; } } elseif($b=='[del]') { setcookie($prefix,'',time()-1,null,null,null,null,true); } else { setcookie($prefix,$b,null,null,null,null,true); } } #https判断 function is_https() { if(!empty($_SERVER['HTTPS'])&&strtolower($_SERVER['HTTPS'])!=='off') { return true; } elseif(isset($_SERVER['HTTP_X_FORWARDED_PROTO'])&&$_SERVER['HTTP_X_FORWARDED_PROTO']==='https') { return true; } elseif(!empty($_SERVER['HTTP_FRONT_END_HTTPS'])&&strtolower($_SERVER['HTTP_FRONT_END_HTTPS'])!=='off') { return true; } return false; } function theme_html($a) { return str_replace(['&',"'",'"','<','>'],['&',''','"','<','>'],$a); } function enhtml($a) { if(is_array($a)) { foreach ($a as $key=>$val) { $a[$key]=enhtml($val); } } else { $a=htmlspecialchars(filterExp(stripslashes($a)),ENT_QUOTES,'UTF-8'); $a=str_replace('&','&',$a); return $a; } } function dehtml($a) { return htmlspecialchars_decode($a); } function nohtml($a) { if(is_string($a)) { $a=dehtml($a); $a=str_replace([' ',' ',' '],'',$a); $a=preg_replace("@