站三界导航
首页 PHP代码
  • 90个PHP常用接口数据过滤的方法
    90个PHP常用接口数据过滤的方法

    <?php/***global.func.php公共函数库*//***返回经addslashes处理过的字符串或数组*@param$string需要处理的字符串或数组*@returnmixed*/functionnew_addslashes($string){if(!is_array($string))returnaddslashes($string);foreach($stringas$key=>$val)$string[$key]=new_addslashes($val);return$string;}/***返回经stripslashes处理过的字符串或数组*@param$string需要处理的字符串或数组*@returnmixed*/functionnew_stripslashes($string){if(!is_array($string))returnstripslashes($string);foreach($stringas$key=>$val)$string[$key]=new_stripslashes($val);return$string;}/***返回经htmlspecialchars处理过的字符串或数组*@param$obj需要处理的字符串或数组*@returnmixed*/functionnew_html_special_chars($string){$encoding='utf-8';if(strtolower(CHARSET)=='gbk')$encoding='ISO-8859-15';if(!is_array($string))returnhtmlspecialchars($string,ENT_QUOTES,$encoding);foreach($stringas$key=>$val)$string[$key]=new_html_special_chars($val);return$string;}functionnew_html_entity_decode($string){$encoding='utf-8';if(strtolower(CHARSET)=='gbk')$encoding='ISO-8859-15';returnhtml_entity_decode($string,ENT_QUOTES,$encoding);}functionnew_htmlentities($string){$encoding='utf-8';if(strtolower(CHARSET)=='gbk')$encoding='ISO-8859-15';returnhtmlentities($string,ENT_QUOTES,$encoding);}/***安全过滤函数**@param$string*@returnstring*/functionsafe_replace($string){$string=str_replace('%20','',$string);$string=str_replace('%27','',$string);$string=str_replace('%2527','',$string);$string=str_replace('*','',$string);$string=str_replace('"','&quot;',$string);$string=str_replace("'",'',$string);$string=str_replace('"','',$string);$string=str_replace(';','',$string);$string=str_replace('<','&lt;',$string);$string=str_replace('>','&gt;',$string);$string=str_replace("{",'',$string);$string=str_replace('}','',$string);$string=str_replace('\\','',$string);return$string;}/***xss过滤函数**@param$string*@returnstring*/functionremove_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.='|(&#0([9][10][13]);?)?';$pattern.=')?';}$pattern.=$parm[$i][$j];}$pattern.='/i';$string=preg_replace($pattern,'',$string);}return$string;}/***过滤ASCII码从0-28的控制字符*@returnString*/functiontrim_unsafe_control_chars($str){$rule='/['.chr(1).'-'.chr(8).chr(11).'-'.chr(12).chr(14).'-'.chr(31).']*/';returnstr_replace(chr(0),'',preg_replace($rule,'',$str));}/***格式化文本域内容**@param$string文本域内容*@returnstring*/functiontrim_textarea($string){$string=nl2br(str_replace('','&nbsp;',$string));return$string;}/***将文本格式成适合js输出的字符串*@paramstring$string需要处理的字符串*@paramintval$isjs是否执行字符串格式化,默认为执行*@returnstring处理后的字符串*/functionformat_js($string,$isjs=1){$string=addslashes(str_replace(array("\r","\n","\t"),array('','',''),$string));return$isjs?'document.write("'.$string.'");':$string;}/***转义javascript代码标记**@param$str*@returnmixed*/functiontrim_script($str){if(is_array($str)){foreach($stras$key=>$val){$str[$key]=trim_script($val);}}else{$str=preg_replace('/\<([\/]?)script([^\>]*?)\>/si','&lt;\\1script\\2&gt;',$str);$str=preg_replace('/\<([\/]?)iframe([^\>]*?)\>/si','&lt;\\1iframe\\2&gt;',$str);$str=preg_replace('/\<([\/]?)frame([^\>]*?)\>/si','&lt;\\1frame\\2&gt;',$str);$str=str_replace('javascript:','javascript:',$str);}return$str;}/***获取当前页面完整URL地址*/functionget_url(){$sys_protocal=isset($_SERVER['SERVER_PORT'])&&$_SERVER['SERVER_PORT']=='443'?'https://':'http://';$php_self=$_SERVER['PHP_SELF']?safe_replace($_SERVER['PHP_SELF']):safe_replace($_SERVER['SCRIPT_NAME']);$path_info=isset($_SERVER['PATH_INFO'])?safe_replace($_SERVER['PATH_INFO']):'';$relate_url=isset($_SERVER['REQUEST_URI'])?safe_replace($_SERVER['REQUEST_URI']):$php_self.(isset($_SERVER['QUERY_STRING'])?'?'.safe_replace($_SERVER['QUERY_STRING']):$path_info);return$sys_protocal.(isset($_SERVER['HTTP_HOST'])?$_SERVER['HTTP_HOST']:'').$relate_url;}/***字符截取支持UTF8/GBK*@param$string*@param$length*@param$dot*/functionstr_cut($string,$length,$dot='...'){$strlen=strlen($string);if($strlen<=$length)return$string;$string=str_replace(array('','&nbsp;','&amp;','&quot;','&#039;','&ldquo;','&rdquo;','&mdash;','&lt;','&gt;','&middot;','&hellip;'),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('','&amp;','&quot;','&#039;','&ldquo;','&rdquo;','&mdash;','&lt;','&gt;','&middot;','&hellip;'),$strcut);}else{$dotlen=strlen($dot);$maxi=$length-$dotlen-1;$current_str='';$search_arr=array('&','','"',"'",'“','”','—','<','>','·','…','∵');$replace_arr=array('&amp;','&nbsp;','&quot;','&#039;','&ldquo;','&rdquo;','&mdash;','&lt;','&gt;','&middot;','&hellip;','');$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;}/***获取请求ip**@returnip地址*/functionip(){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'];}returnpreg_match('/[\d\.]{7,15}/',$ip,$matches)?$matches[0]:'';}functionget_cost_time(){$microtime=microtime(TRUE);return$microtime-SYS_START_TIME;}/***程序执行时间**@returnint单位ms*/functionexecute_time(){$stime=explode('',SYS_START_TIME);$etime=explode('',microtime());returnnumber_format(($etime[1]+$etime[0]-$stime[1]-$stime[0]),6);}/***将字符串转换为数组**@paramstring$data字符串*@returnarray返回数组格式,如果,data为空,则返回空数组*/functionstring2array($data){if($data=='')returnarray();$data=stripslashes($data);@eval("\$array=$data;");return$array;}/***将数组转换为字符串**@paramarray$data数组*@parambool$isformdata如果为0,则不使用new_stripslashes处理,可选参数,默认为1*@returnstring返回字符串,如果,data为空,则返回空*/functionarray2string($data,$isformdata=1){if($data=='')return'';if($isformdata)$data=new_stripslashes($data);returnaddslashes(var_export($data,TRUE));}/***转换字节数为其他单位***@paramstring$filesize字节大小*@returnstring返回大小*/functionsizecount($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;}/***字符串加密、解密函数***@paramstring$txt字符串*@paramstring$operationENCODE为加密,DECODE为解密,可选参数,默认为ENCODE,*@paramstring$key密钥:数字、字母、下划线*@paramstring$expiry过期时间*@returnstring*/functionsys_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)){returnsubstr($result,26);}else{return'';}}}/***语言文件处理**@paramstring$language标示符*@paramarray$pars转义的数组,二维数组,'key1'=>'value1','key2'=>'value2',*@paramstring$modules多个模块之间用半角逗号隔开,如:member,guestbook*@returnstring语言字符*/functionL($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_onceCODE_PATH.'languages'.DIRECTORY_SEPARATOR.$lang.DIRECTORY_SEPARATOR.'system.lang.php';if(defined('IN_ADMIN'))require_onceCODE_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_onceCODE_PATH.'languages'.DIRECTORY_SEPARATOR.$lang.DIRECTORY_SEPARATOR.ROUTE_M.'.lang.php';}if(!empty($modules)){$modules=explode(',',$modules);foreach($modulesAS$m){if(!isset($LANG_MODULES[$m]))require_onceCODE_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($parsAS$_k=>$_v){$language=str_replace('{'.$_k.'}',$_v,$language);}}return$language;}}/***模板调用**@param$module*@param$template*@param$istag*@returnunknown_type*/functiontemplate($module='content',$template='index',$style=''){if(strpos($module,'plugin/')!==false){$plugin=str_replace('plugin/','',$module);returnp_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('Templatedoesnotexist.'.DIRECTORY_SEPARATOR.$style.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.'.html');}}return$compiledtplfile;}/***输出自定义错误**@param$errno错误号*@param$errstr错误描述*@param$errfile报错文件地址*@param$errline错误行号*@returnstring错误提示*/functionmy_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('<?phpexit;?>'.date('m-dH:i:s',SYS_TIME).'|'.$errno.'|'.str_pad($errstr,30).'|'.$errfile.'|'.$errline."\r\n",3,CACHE_PATH.'error_log.php');}else{$str='<divstyle="font-size:12px;text-align:left;border-bottom:1pxsolid#9cc9e0;border-right:1pxsolid#9cc9e0;padding:1px4px;color:#000000;font-family:Arial,Helvetica,sans-serif;"><span>errorno:'.$errno.',str:'.$errstr.',file:<fontcolor="blue">'.$errfile.'</font>,line'.$errline.'<br/>NeedHelp?</span></div>';echo$str;}}/***提示信息页面跳转,跳转地址如果传入数组,页面会提示多个地址供用户选择,默认跳转地址为数组的第一个值,时间为5秒。*showmessage('登录成功',array('默认跳转地址'=>'http://www.baidu.com'));*@paramstring$msg提示信息*@parammixed(string/array)$url_forward跳转地址*@paramint$ms跳转等待时间*/functionshowmessage($msg,$url_forward='goback',$ms=1250,$dialog='',$returnjs=''){if(defined('IN_ADMIN')){include(admin::admin_tpl('showmessage','admin'));}else{include(template('content','message'));}exit;}/***查询字符是否存在于某字符串**@param$haystack字符串*@param$needle要查找的字符*@returnbool*/functionstr_exists($haystack,$needle){return!(strpos($haystack,$needle)===FALSE);}/***取得文件扩展**@param$filename文件名*@return扩展名*/functionfileext($filename){returnstrtolower(trim(substr(strrchr($filename,'.'),1,10)));}/***加载模板标签缓存*@paramstring$name缓存名*@paraminteger$times缓存时间*/functiontpl_cache($name,$times=0){$filepath='tpl_data';$info=getcacheinfo($name,$filepath);if(SYS_TIME-$info['filemtime']>=$times){returnfalse;}else{returngetcache($name,$filepath);}}/***写入缓存,默认为文件缓存,不加载缓存配置。*@param$name缓存名称*@param$data缓存数据*@param$filepath数据路径(模块名称)caches/cache_$filepath/*@param$type缓存类型[file,memcache,apc]*@param$config配置名称*@param$timeout过期时间*/functionsetcache($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);}/***读取缓存,默认为文件缓存,不加载缓存配置。*@paramstring$name缓存名称*@param$filepath数据路径(模块名称)caches/cache_$filepath/*@paramstring$config配置名称*/functiongetcache($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);}//根据行政区划数字获取对应名称名称如110101得到北京市东城区functionget_div($div=''){if(empty($div)){returnfalse;}$regioncode=getcache('1','linkage');if($regioncode){$l1=substr($div,0,2).'0000';$L1_n=$regioncode['data'][$l1]['name'];$tb=array('110000','120000','310000','500000');if(in_array($l1,$tb)){$l2=$l1=substr($div,0,2)."0000-r";}else{$l2=substr($div,0,4)."00";}$L2_n=$regioncode['data'][$l2]['name'];$L3_n=$regioncode['data'][$div]['name'];if($L2_n===$L1_n){$res_div=$L1_n.$L3_n;}else{$res_div=$L1_n.$L2_n.$L3_n;}return$res_div;}else{return'无行政区划地址';}}//根据行业类型数字获取对应名称名称如$trade=‘1A0112’得到农、林、牧、渔业-农业-谷物及其他作物的种植-薯类的种植functionget_trade_category($trade=''){if(empty($trade)){returnfalse;}$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'行业类型数据不存在';}}/***删除缓存,默认为文件缓存,不加载缓存配置。*@param$name缓存名称*@param$filepath数据路径(模块名称)caches/cache_$filepath/*@param$type缓存类型[file,memcache,apc]*@param$config配置名称*/functiondelcache($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);}/***读取缓存,默认为文件缓存,不加载缓存配置。*@paramstring$name缓存名称*@param$filepath数据路径(模块名称)caches/cache_$filepath/*@paramstring$config配置名称*/functiongetcacheinfo($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);}/***生成sql语句,如果传入$in_cloumn生成格式为IN('a','b','c')*@param$data条件数组或者字符串*@param$front连接符*@param$in_column字段名称*@returnstring*/functionto_sqls($data,$front='AND',$in_column=false){if($in_column&&is_array($data)){$ids='\''.implode('\',\'',$data).'\'';$sql="$in_columnIN($ids)";return$sql;}else{if($front==''){$front='AND';}if(is_array($data)&&count($data)>0){$sql='';foreach($dataas$key=>$val){$sql.=$sql?"$front$key='$val'":"$key='$val'";}return$sql;}else{return$data;}}}/***分页函数**@param$num信息总数*@param$curr_page当前分页*@param$perpage每页显示数*@param$urlruleURL规则*@param$array需要传递的数组,用于增加额外的方法*@return分页*/functionpages($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;}//$multipage.='<aclass="a1">'.$num.L('page_item').'</a>';if($curr_page>0){$multipage.='<ahref="'.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.='<ahref="'.pageurl($urlrule,1,$array).'">1</a>..';}else{$multipage.='<ahref="'.pageurl($urlrule,1,$array).'">1</a>';}}for($i=$from;$i<=$to;$i++){if($i!=$curr_page){$multipage.='<ahref="'.pageurl($urlrule,$i,$array).'">'.$i.'</a>';}else{$multipage.='<span>'.$i.'</span>';}}if($curr_page<$pages){if($curr_page<$pages-5&&$more){$multipage.='..<ahref="'.pageurl($urlrule,$pages,$array).'">'.$pages.'</a><ahref="'.pageurl($urlrule,$curr_page+1,$array).'"class="a1">'.L('next').'</a>';}else{$multipage.='<ahref="'.pageurl($urlrule,$pages,$array).'">'.$pages.'</a><ahref="'.pageurl($urlrule,$curr_page+1,$array).'"class="a1">'.L('next').'</a>';}}elseif($curr_page==$pages){$multipage.='<span>'.$pages.'</span><ahref="'.pageurl($urlrule,$curr_page,$array).'"class="a1">'.L('next').'</a>';}else{$multipage.='<ahref="'.pageurl($urlrule,$pages,$array).'">'.$pages.'</a><ahref="'.pageurl($urlrule,$curr_page+1,$array).'"class="a1">'.L('next').'</a>';}}return$multipage;}functionpages1($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;}//$multipage.='<aclass="a1">'.$num.L('page_item').'</a>';if($curr_page>0){$multipage.='<ahref="###"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.='<ahref="###"onclick="$(\'#page\').val(1);$(\'#pageform\').submit();">1</a>..';}else{$multipage.='<ahref="###"onclick="$(\'#page\').val(1);$(\'#pageform\').submit();">1</a>';}}for($i=$from;$i<=$to;$i++){if($i!=$curr_page){$multipage.='<ahref="###"onclick="$(\'#page\').val('.$i.');$(\'#pageform\').submit();">'.$i.'</a>';}else{$multipage.='<span>'.$i.'</span>';}}if($curr_page<$pages){if($curr_page<$pages-5&&$more){$multipage.='..<ahref="###"onclick="$(\'#page\').val('.$pages.');$(\'#pageform\').submit();">'.$pages.'</a><ahref="###"onclick="$(\'#page\').val('.($curr_page+1).');$(\'#pageform\').submit();"class="a1">'.L('next').'</a>';}else{$multipage.='<ahref="###"onclick="$(\'#page\').val('.$pages.');$(\'#pageform\').submit();">'.$pages.'</a><ahref="###"onclick="$(\'#page\').val('.($curr_page+1).');$(\'#pageform\').submit();"class="a1">'.L('next').'</a>';}}elseif($curr_page==$pages){$multipage.='<span>'.$pages.'</span><ahref="###"onclick="$(\'#page\').val('.$curr_page.');$(\'#pageform\').submit();"class="a1">'.L('next').'</a>';}else{$multipage.='<ahref="###"onclick="$(\'#page\').val('.$pages.');$(\'#pageform\').submit();">'.$pages.'</a><ahref="###"onclick="$(\'#page\').val('.($curr_page+1).');$(\'#pageform\').submit();"class="a1">'.L('next').'</a>';}}return$multipage;}functionpages2($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;}//$multipage.='<aclass="a1">'.$num.L('page_item').'</a>';if($curr_page>0){$multipage.='<ahref="###"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.='<ahref="###"onclick="$(\'#dosearch\').trigger(\'click\',[1]);">1</a>..';}else{$multipage.='<ahref="###"onclick="$(\'#dosearch\').trigger(\'click\',[1]);">1</a>';}}for($i=$from;$i<=$to;$i++){if($i!=$curr_page){$multipage.='<ahref="###"onclick="$(\'#dosearch\').trigger(\'click\',['.$i.']);">'.$i.'</a>';}else{$multipage.='<span>'.$i.'</span>';}}if($curr_page<$pages){if($curr_page<$pages-5&&$more){$multipage.='..<ahref="###"onclick="$(\'#dosearch\').trigger(\'click\',['.$pages.']);">'.$pages.'</a><ahref="###"onclick="$(\'#dosearch\').trigger(\'click\',['.($curr_page+1).']);"class="a1">'.L('next').'</a>';}else{$multipage.='<ahref="###"onclick="$(\'#dosearch\').trigger(\'click\',['.$pages.']);">'.$pages.'</a><ahref="###"onclick="$(\'#dosearch\').trigger(\'click\',['.($curr_page+1).']);"class="a1">'.L('next').'</a>';}}elseif($curr_page==$pages){$multipage.='<span>'.$pages.'</span><ahref="###"onclick="$(\'#dosearch\').trigger(\'click\',['.($curr_page).']);"class="a1">'.L('next').'</a>';}else{$multipage.='<ahref="###"onclick="$(\'#dosearch\').trigger(\'click\',['.$pages.']);">'.$pages.'</a><ahref="###"onclick="$(\'#dosearch\').trigger(\'click\',['.($curr_page+1).']);"class="a1">'.L('next').'</a>';}}return$multipage;}/***返回分页路径**@param$urlrule分页规则*@param$page当前页*@param$array需要传递的数组,用于增加额外的方法*@return完整的URL路径*/functionpageurl($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($arrayas$k=>$v){$findme[]='{$'.$k.'}';$replaceme[]=$v;}$url=str_replace($findme,$replaceme,$urlrule);$url=str_replace(array('http://','//','~'),array('~','/','http://'),$url);return$url;}/***URL路径解析,pages函数的辅助函数**@param$par传入需要解析的变量默认为,page={$page}*@param$urlURL地址*@returnURL*/functionurl_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($parsas$k=>$v){if($k!='page')$query_array[$k]=$v;}$querystring=http_build_query($query_array).'&'.$par;$url=substr($url,0,$pos).'?'.$querystring;}return$url;}/***判断email格式是否正确*@param$email*/functionis_email($email){returnstrlen($email)>6&&preg_match("/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/",$email);}/***iconv编辑转换*/if(!function_exists('iconv')){functioniconv($in_charset,$out_charset,$str){$in_charset=strtoupper($in_charset);$out_charset=strtoupper($out_charset);if(function_exists('mb_convert_encoding')){returnmb_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')){returnutf8_to_gbk($str);}if(($in_charset=='GBK'||$in_charset=='GB2312')&&$out_charset=='UTF-8'){returngbk_to_utf8($str);}return$str;}}}/***代码广告展示函数*@paramintval$siteid所属站点*@paramintval$id广告ID*@return返回广告代码*/functionshow_ad($siteid,$id){$siteid=intval($siteid);$id=intval($id);if(!$id||!$siteid)returnfalse;$p=app_base::load_model('poster_model');$r=$p->get_one(array('spaceid'=>$id,'siteid'=>$siteid),'disabled,setting','idASC');if($r['disabled'])return'';if($r['setting']){$c=string2array($r['setting']);}else{$r['code']='';}return$c['code'];}/***获取当前的站点ID*/functionget_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($dataas$v){if($v['url']==$site_url.'/')$siteid=$v['siteid'];}}if(empty($siteid))$siteid=1;return$siteid;}/***获取用户昵称*不传入userid取当前用户nickname,如果nickname为空取username*传入field,取用户$field字段信息*/functionget_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;}/***获取用户信息*不传入$field返回用户所有信息,*传入field,取用户$field字段信息*/functionget_memberinfo($userid,$field=''){if(!is_numeric($userid)){returnfalse;}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];}}}/***通过username值,获取用户所有信息*获取用户信息*不传入$field返回用户所有信息,*传入field,取用户$field字段信息*/functionget_memberinfo_buyusername($username,$field=''){if(empty($username)){returnfalse;}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];}}/***调用关联菜单*@param$linkageid联动菜单id*@param$id生成联动菜单的样式id*@param$defaultvalue默认值*/functionmenu_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.='<scripttype="text/javascript"src="'.JS_PATH.'dialog.js"></script>';//TODO$string.='<linkhref="'.CSS_PATH.'dialog.css"rel="stylesheet"type="text/css">';}if(!defined('LINKAGE_INIT_1')){define('LINKAGE_INIT_1',1);$string.='<scripttype="text/javascript"src="'.JS_PATH.'linkage/js/pop.js"></script>';}$var_div=$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')?'<inputtype="hidden"name="info['.$id.']"value="'.$defaultvalue.'">':'<inputtype="hidden"name="info['.$id.']"value="">';$string.='<divname="'.$id.'"value=""id="'.$id.'"class="ib">'.$var_div.'</div>'.$var_input.'<inputtype="button"name="btn_'.$id.'"class="button"value="'.L('linkage_select').'"onclick="open_linkage(\''.$id.'\',\''.$title.'\','.$container.',\''.$linkageid.'\')">';$string.='<scripttype="text/javascript">';$string.='varreturnid_'.$id.'=\''.$id.'\';';$string.='varreturnkeyid_'.$id.'=\''.$linkageid.'\';';$string.='var'.$container.'=newArray(';foreach($infosAS$k=>$v){if($v['parentid']==0){$s[]='newArray(\''.$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.='<scripttype="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')?'<inputtype="hidden"name="info['.$id.']"id="'.$id.'"value="'.$defaultvalue.'">':'<inputtype="hidden"name="info['.$id.']"id="'.$id.'"value="">';for($i=1;$i<=$datas['setting']['level'];$i++){$txt=isset($defaultlabel[$i])?$defaultlabel[$i]:'请选择';$string.='<selectclass="pc-select-'.$id.'"name="'.$id.'-'.$i.'"id="'.$id.'-'.$i.'"width="100"><optionvalue="">'.$txt.'</option></select>';}$string.='<scripttype="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}})varld5_api=$ld5.ld("api");//ld5_api.selected('.$default_txt.');$ld5.bind("change",onchange);functiononchange(e){var$target=$(e.target);varindex=$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.='<scripttype="text/javascript"src="'.JS_PATH.'linkage/js/mln.colselect.js"></script>';if(defined('IN_ADMIN')){$string.='<linkhref="'.JS_PATH.'linkage/style/admin.css"rel="stylesheet"type="text/css">';}else{$string.='<linkhref="'.JS_PATH.'linkage/style/css.css"rel="stylesheet"type="text/css">';}}$string.='<inputtype="hidden"name="info['.$id.']"value="1"><divid="'.$id.'"></div>';$string.='<scripttype="text/javascript">';$string.='varcolObj'.$colObj.'={"Items":[';foreach($infosAS$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;}/***联动菜单层级*/functionmenu_linkage_level($linkageid,$keyid,$infos,$result=array()){if(array_key_exists($linkageid,$infos)){$result[]=$infos[$linkageid]['name'];returnmenu_linkage_level($infos[$linkageid]['parentid'],$keyid,$infos,$result);}krsort($result);returnimplode('>',$result);}/***通过catid获取显示菜单完整结构*@param$menuid菜单ID*@param$cache_file菜单缓存文件名称*@param$cache_path缓存文件目录*@param$key取得缓存值的键值名称*@param$parentkey父级的ID*@param$linkstring链接字符*/functionmenu_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];returnmenu_level($menu_arr[$menuid][$parentkey],$cache_file,$cache_path,$key,$parentkey,$linkstring,$result);}krsort($result);returnimplode($linkstring,$result);}/***通过id获取显示联动菜单*@param$linkageid联动菜单ID*@param$keyid菜单keyid*@param$space菜单间隔符*@param$tyoe1返回间隔符链接,完整路径名称3返回完整路径数组,2返回当前联动菜单名称,4直接返回ID*@param$result递归使用字段1*@param$infos递归使用字段2*/functionget_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]);returnget_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'];}}/***IE浏览器判断*/functionis_ie(){$useragent=strtolower($_SERVER['HTTP_USER_AGENT']);if((strpos($useragent,'opera')!==false)||(strpos($useragent,'konqueror')!==false))returnfalse;if(strpos($useragent,'msie')!==false)returntrue;returnfalse;}/***文件下载*@param$filepath文件路径*@param$filename文件名称*/functionfile_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,dMYH: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;}/***判断字符串是否为utf8编码,英文和半角字符返回ture*@param$string*@returnbool*/functionis_utf8($string){returnpreg_match('%^(?:[\x09\x0A\x0D\x20-\x7E]#ASCII|[\xC2-\xDF][\x80-\xBF]#non-overlong2-byte|\xE0[\xA0-\xBF][\x80-\xBF]#excludingoverlongs|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}#straight3-byte|\xED[\x80-\x9F][\x80-\xBF]#excludingsurrogates|\xF0[\x90-\xBF][\x80-\xBF]{2}#planes1-3|[\xF1-\xF3][\x80-\xBF]{3}#planes4-15|\xF4[\x80-\x8F][\x80-\xBF]{2}#plane16)*$%xs',$string);}/***组装生成ID号*@param$modules模块名*@param$contentid内容ID*@param$siteid站点ID*/functionid_encode($modules,$contentid,$siteid){returnurlencode($modules.'-'.$contentid.'-'.$siteid);}/***解析ID*@param$id评论ID*/functionid_decode($id){returnexplode('-',$id);}/***对用户的密码进行加密*@param$password*@param$encrypt//传入加密串,在修改密码时做认证*@returnarray/password*/functionpassword($password,$encrypt=''){$pwd=array();$pwd['encrypt']=$encrypt?$encrypt:create_randomstr();$pwd['password']=md5(md5(trim($password)).$pwd['encrypt']);return$encrypt?$pwd['password']:$pwd;}/***生成随机字符串*@paramstring$lenth长度*@returnstring字符串*/functioncreate_randomstr($lenth=6){//openssl_random_pseudo_bytes$fp=@fopen('/dev/urandom','rb');$pr_bits='';if($fp!==FALSE){$pr_bits.=@fread($fp,$lenth/2);@fclose($fp);}returnbin2hex($pr_bits);//returnrandom($lenth,'123456789abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ');}/***生成随机数*@paramstring$lenth长度*@returnstring字符串*/functioncreate_randomnum($min,$max){//openssl_random_pseudo_bytes$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;//returnrandom($lenth,'123456789abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ');}/***检查密码长度是否符合规定**@paramSTRING$password*@returnTRUEorFALSE*/functionis_password($password){$strlen=strlen($password);if($strlen>=6&&$strlen<=20)returntrue;returnfalse;}/***检测输入中是否含有错误字符**@paramchar$string要检查的字符串名称*@returnTRUEorFALSE*/functionis_badword($string){$badwords=array("\\",'&','',"'",'"','/','*',',','<','>',"\r","\t","\n","#");foreach($badwordsas$value){if(strpos($string,$value)!==FALSE){returnTRUE;}}returnFALSE;}/***检查用户名是否符合规定**@paramSTRING$username要检查的用户名*@returnTRUEorFALSE*/functionis_username($username){$strlen=strlen($username);if(is_badword($username)||!preg_match("/^[a-zA-Z0-9_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]+$/",$username)){returnfalse;}elseif(20<$strlen||$strlen<2){returnfalse;}returntrue;}/***检查id是否存在于数组中**@param$id*@param$ids*@param$s*/functioncheck_in($id,$ids='',$s=','){if(!$ids)returnfalse;$ids=explode($s,$ids);returnis_array($id)?array_intersect($id,$ids):in_array($id,$ids);}/***对数据进行编码转换*@paramarray/string$data数组*@paramstring$input需要转换的编码*@paramstring$output转换后的编码*/functionarray_iconv($data,$input='gbk',$output='utf-8'){if(!is_array($data)){returniconv($input,$output,$data);}else{foreach($dataas$key=>$val){if(is_array($val)){$data[$key]=array_iconv($val,$input,$output);}else{$data[$key]=iconv($input,$output,$val);}}return$data;}}/***生成缩略图函数*@param$imgurl图片路径*@param$width缩略图宽度*@param$height缩略图高度*@param$autocut是否自动裁剪默认裁剪,当高度或宽度有一个数值为0是,自动关闭*@param$smallpic无图片是默认图片路径*/functionthumb($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))returnIMG_PATH.$smallpic;$imgurl_replace=str_replace($upload_url,'',$imgurl);if(!extension_loaded('gd')||strpos($imgurl_replace,'://'))return$imgurl;if(!file_exists($upload_path.$imgurl_replace))returnIMG_PATH.$smallpic;list($width_t,$height_t,$type,$attr)=getimagesize($upload_path.$imgurl_replace);if($width>=$width_t||$height>=$height_t)return$imgurl;$newimgurl=dirname($imgurl_replace).'/thumb_'.$width.'_'.$height.'_'.basename($imgurl_replace);if(file_exists($upload_path.$newimgurl))return$upload_url.$newimgurl;if(!is_object($image)){app_base::load_sys_class('image','','0');$image=newimage(1,0);}return$image->thumb($upload_path.$imgurl_replace,$upload_path.$newimgurl,$width,$height,'',$autocut)?$upload_url.$newimgurl:$imgurl;}/***水印添加*@param$source原图片路径*@param$target生成水印图片途径,默认为空,覆盖原图*@param$siteid站点id,系统需根据站点id获取水印信息*/functionwatermark($source,$target='',$siteid){global$image_w;if(empty($source))return$source;if(!extension_loaded('gd')||strpos($source,'://'))return$source;if(!$target)$target=$source;if(!is_object($image_w)){app_base::load_sys_class('image','','0');$image_w=newimage(0,$siteid);}$image_w->watermark($source,$target);return$target;}/***当前路径*返回指定栏目路径层级*@param$catid栏目id*@param$symbol栏目间隔符*/functioncatpos($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($arrparentidas$catid){$url=$category_arr[$catid]['url'];//if(strpos($url,'://')===false)$url=$siteurl.$url;$pos.='<ahref="'.$url.'">'.$category_arr[$catid]['catname'].'</a>'.$symbol;}return$pos;}/***根据catid获取子栏目数据的sql语句*@paramstring$module缓存文件名*@paramintval$catid栏目ID*/functionget_sql_catid($file='category_content_1',$catid=0,$module='commons'){$category=getcache($file,$module);$catid=intval($catid);if(!isset($category[$catid]))returnfalse;return$category[$catid]['child']?"catidIN(".$category[$catid]['arrchildid'].")":"catid=$catid";}/***获取子栏目*@param$parentid父级id*@param$type栏目类型*@param$self是否包含本身0为不包含*@param$siteid站点id*/functionsubcat($parentid=NULL,$type=NULL,$self='0',$siteid=''){if(empty($siteid))$siteid=get_siteid();$category=getcache('category_content_'.$siteid,'commons');foreach($categoryas$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;}/***获取内容地址*@param$catid栏目ID*@param$id文章ID*@param$allurl是否以绝对路径返回*/functiongo($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'],'://')===false){if(strpos($category[$catid]['url'],'://')===FALSE){$site=siteinfo($category[$catid]['siteid']);$r['url']=substr($site['domain'],0,-1).$r['url'];}else{$r['url']=$category[$catid]['url'].$r['url'];}}}return$r['url'];}/***将附件地址转换为绝对地址*@param$path附件地址*/functionatturl($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,'//',$domainlen),2);return$path;}}/***判断模块是否安装*@param$m模块名称*/functionmodule_exists($m=''){if($m=='admin')returntrue;$modules=getcache('modules','commons');$modules=array_keys($modules);returnin_array($m,$modules);}/***生成SEO*@param$siteid站点ID*@param$catid栏目ID*@param$title标题*@param$description描述*@param$keyword关键词*/functionseo($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($seoas$k=>$v){$seo[$k]=str_replace(array("\n","\r"),'',$v);}return$seo;}/***获取站点的信息*@param$siteid站点ID*/functionsiteinfo($siteid){static$sitelist;if(empty($sitelist))$sitelist=getcache('sitelist','commons');returnisset($sitelist[$siteid])?$sitelist[$siteid]:'';}/***生成CNZZ统计代码*/functiontjcode(){if(!module_exists('cnzz'))returnfalse;$config=getcache('cnzz','commons');if(empty($config)){returnfalse;}else{return'<scriptsrc=\'http://pw.cnzz.com/c.php?id='.$config['siteid'].'&l=2\'language=\'JavaScript\'charset=\'gb2312\'></script>';}}/***生成标题样式*@param$style样式*@param$html是否显示完整的STYLE*/functiontitle_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;}/***获取站点域名*@param$siteid站点id*/functionsiteurl($siteid){static$sitelist;returnWEB_PATH;//if(!$siteid)returnWEB_PATH;//if(empty($sitelist))$sitelist=getcache('sitelist','commons');//returnsubstr($sitelist[$siteid]['domain'],0,-1);}/***生成上传附件验证*@param$args参数*@param$operation操作类型(加密解密)*/functionupload_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;}/***文本转换为图片*@paramstring$txt图形化文本内容*@paramint$fonttype无外部字体时生成文字大小,取值范围1-5*@paramint$fontsize引入外部字体时,字体大小*@paramstring$font字体名称字体请放于app\libs\data\font下*@paramstring$fontcolor字体颜色十六进制形式如FFFFFF,FF0000*/functionstring2img($txt,$fonttype=5,$fontsize=16,$font='',$fontcolor='FF0000',$transparent='1'){if(empty($txt))returnfalse;if(function_exists("imagepng")){$txt=urlencode(sys_auth($txt));$txt='<imgsrc="'.APP_PATH.'api.php?op=creatimg&txt='.$txt.'&fonttype='.$fonttype.'&fontsize='.$fontsize.'&font='.$font.'&fontcolor='.$fontcolor.'&transparent='.$transparent.'"align="absmiddle">';}return$txt;}/***获取系统版本号*/functionget_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'];}}/***运行钩子(插件使用)*/functionrunhook($method){$time_start=getmicrotime();$data='';$getpclass=FALSE;$hook_appid=getcache('hook','plugins');if(!empty($hook_appid)){foreach($hook_appidas$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=newReflectionClass('hook');foreach($pclass->getMethods()as$r){$legalmethods[]=$r->getName();}}if(in_array($method,$legalmethods)){foreach(get_declared_classes()as$class){$refclass=newReflectionClass($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;}}functiongetmicrotime(){list($usec,$sec)=explode("",microtime());return((float)$usec+(float)$sec);}/***插件前台模板加载*Enterdescriptionhere...*@paramunknown_type$module*@paramunknown_type$template*@paramunknown_type$style*/functionp_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('Templatedoesnotexist.'.DIRECTORY_SEPARATOR.'plugin'.DIRECTORY_SEPARATOR.$plugin.DIRECTORY_SEPARATOR.$template.'.html');}return$compiledtplfile;}/***读取缓存动态页面*/functioncache_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){echosubstr($contents,29);exit;}if(!defined('HTML'))define('HTML',true);returntrue;}/***写入缓存动态页面*/functioncache_page($ttl=360,$isjs=0){if($ttl==0||!defined('CACHE_PAGE_ID'))returnfalse;$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));}/****获取远程内容*@param$url接口url地址*@param$timeout超时时间*/functionpc_file_get_contents($url,$timeout=30){$stream=stream_context_create(array('http'=>array('timeout'=>$timeout)));return@file_get_contents($url,0,$stream);}/***Functionget_vid*获取视频信息*@paramint$contentid内容ID必须*@paramint$catid栏目id取内容里面视频信息时必须*@paramint$isspecial是否取专题的视频信息*/functionget_vid($contentid=0,$catid=0,$isspecial=0){static$categorys;if(!$contentid)returnfalse;if(!$isspecial){if(!$catid)returnfalse;$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','listorderASC');$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']));}}/***Functiondataformat*时间转换*@param$nINT时间*/functiondataformat($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;}}functionhttpResponse($status,$msg=''){$m=app_base::load_model('category_model');$CATEGORYS=$m->select(array('parentid'=>0),'*','','listorder');includeCODE_PATH.'libs'.DIRECTORY_SEPARATOR.'data'.DIRECTORY_SEPARATOR.'http'.DIRECTORY_SEPARATOR.$status.'.php';}functionarray_change_key_case_recursive($arr){if(!$arr||!is_array($arr))returnarray();returnarray_map(function($item){if(is_array($item))$item=array_change_key_case_recursive($item);return$item;},array_change_key_case($arr));}functionvisitauth(){$vtime=time();$vsign=md5("cuichuande@ideadata.com.cn#$%".$vtime);return"tm={$vtime}&sn={$vsign}";}?>

    • PHP代码
    • 130阅读
    • 2022-06-01

  • php解析url并得到url中的参数
    php解析url并得到url中的参数

    <?php$url='http://www.baidu.com/index.php?m=content&c=index&a=lists&catid=6&area=0&author=0&h=0&region=0&s=1&page=1';$arr=parse_url($url);var_dump($arr);$arr_query=convertUrlQuery($arr['query']);var_dump($arr_query);var_dump(getUrlQuery($arr_query));/***将字符串参数变为数组*@param$query*@returnarrayarray(size=10)'m'=>string'content'(length=7)'c'=>string'index'(length=5)'a'=>string'lists'(length=5)'catid'=>string'6'(length=1)'area'=>string'0'(length=1)'author'=>string'0'(length=1)'h'=>string'0'(length=1)'region'=>string'0'(length=1)'s'=>string'1'(length=1)'page'=>string'1'(length=1)*/functionconvertUrlQuery($query){$queryParts=explode('&',$query);$params=array();foreach($queryPartsas$param){$item=explode('=',$param);$params[$item[0]]=$item[1];}return$params;}/***将参数变为字符串*@param$array_query*@returnstringstring'm=content&c=index&a=lists&catid=6&area=0&author=0&h=0&region=0&s=1&page=1'(length=73)*/functiongetUrlQuery($array_query){$tmp=array();foreach($array_queryas$k=>$param){$tmp[]=$k.'='.$param;}$params=implode('&',$tmp);return$params;}

    • PHP代码
    • 111阅读
    • 2022-06-01

  • 8个新鲜的PHP常用代码
    8个新鲜的PHP常用代码

    /***+----------------------------------------------------------*生成UUID单机使用*+----------------------------------------------------------**@accesspublic+----------------------------------------------------------*@returnstring+----------------------------------------------------------*/publicfunctionuuid(){$charid=md5(uniqid(mt_rand(),true));$hyphen=chr(45);//"-"$uuid=chr(123)//"{".substr($charid,0,8).$hyphen.substr($charid,8,4).$hyphen.substr($charid,12,4).$hyphen.substr($charid,16,4).$hyphen.substr($charid,20,12).chr(125);//"}"return$uuid;}/***+----------------------------------------------------------*生成Guid主键*+----------------------------------------------------------**@returnBoolean+----------------------------------------------------------*/publicfunctionkeyGen(){returnstr_replace('-','',substr(com_create_guid(),1,-1));}/***+----------------------------------------------------------*检查字符串是否是UTF8编码*+----------------------------------------------------------**@paramstring$string字符串+----------------------------------------------------------*@returnBoolean+----------------------------------------------------------*/publicfunctionis_utf8($str){$c=0;$b=0;$bits=0;$len=strlen($str);for($i=0;$i<$len;$i++){$c=ord($str[$i]);if($c>128){if(($c>=254))returnfalse;elseif($c>=252)$bits=6;elseif($c>=248)$bits=5;elseif($c>=240)$bits=4;elseif($c>=224)$bits=3;elseif($c>=192)$bits=2;elsereturnfalse;if(($i+$bits)>$len)returnfalse;while($bits>1){$i++;$b=ord($str[$i]);if($b<128||$b>191)returnfalse;$bits--;}}}returntrue;}/***+----------------------------------------------------------*字符串截取,支持中文和其它编码+----------------------------------------------------------**@static*@accesspublic+----------------------------------------------------------*@paramstring$str需要转换的字符串*@paramstring$start开始位置*@paramstring$length截取长度*@paramstring$charset编码格式*@paramstring$suffix截断显示字符*+----------------------------------------------------------*@returnstring+----------------------------------------------------------*/publicfunctionmsubstr($str,$start=0,$length,$charset="utf-8",$suffix=true){if(function_exists("mb_substr"))returnmb_substr($str,$start,$length,$charset);elseif(function_exists('iconv_substr')){returniconv_substr($str,$start,$length,$charset);}$re['utf-8']="/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";$re['gb2312']="/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";$re['gbk']="/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";$re['big5']="/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";preg_match_all($re[$charset],$str,$match);$slice=join("",array_slice($match[0],$start,$length));if($suffix)return$slice."…";return$slice;}/***+----------------------------------------------------------*产生随机字串,可用来自动生成密码*默认长度6位字母和数字混合支持中文*+----------------------------------------------------------**@paramstring$len长度*@paramstring$type字串类型*0字母1数字其它混合*@paramstring$addChars额外字符*+----------------------------------------------------------*@returnstring+----------------------------------------------------------*/publicfunctionrand_string($len=6,$type='',$addChars=''){$str='';switch($type){case0:$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.$addChars;break;case1:$chars=str_repeat('0123456789',3);break;case2:$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZ'.$addChars;break;case3:$chars='abcdefghijklmnopqrstuvwxyz'.$addChars;break;case4:$chars="们以我到他会作时要动国产的一是工就年阶义发成部民可出能方进在了不和有大这主中人上为来分生对于学下级地个用同行面说种过命度革而多子后自社加小机也经力线本电高量长党得实家定深法表着水理化争现所二起政三好十战无农使性前等反体合斗路图把结第里正新开论之物从当两些还天资事队批点育重其思与间内去因件日利相由压员气业代全组数果期导平各基或月毛然如应形想制心样干都向变关问比展那它最及外没看治提五解系林者米群头意只明四道马认次文通但条较克又公孔领军流入接席位情运器并飞原油放立题质指建区验活众很教决特此常石强极土少已根共直团统式转别造切九你取西持总料连任志观调七么山程百报更见必真保热委手改管处己将修支识病象几先老光专什六型具示复安带每东增则完风回南广劳轮科北打积车计给节做务被整联步类集号列温装即毫知轴研单色坚据速防史拉世设达尔场织历花受求传口断况采精金界品判参层止边清至万确究书术状厂须离再目海交权且儿青才证低越际八试规斯近注办布门铁需走议县兵固除般引齿千胜细影济白格效置推空配刀叶率述今选养德话查差半敌始片施响收华觉备名红续均药标记难存测士身紧液派准斤角降维板许破述技消底床田势端感往神便贺村构照容非搞亚磨族火段算适讲按值美态黄易彪服早班麦削信排台声该击素张密害侯草何树肥继右属市严径螺检左页抗苏显苦英快称坏移约巴材省黑武培著河帝仅针怎植京助升王眼她抓含苗副杂普谈围食射源例致酸旧却充足短划剂宣环落首尺波承粉践府鱼随考刻靠够满夫失包住促枝局菌杆周护岩师举曲春元超负砂封换太模贫减阳扬江析亩木言球朝医校古呢稻宋听唯输滑站另卫字鼓刚写刘微略范供阿块某功套友限项余倒卷创律雨让骨远帮初皮播优占死毒圈伟季训控激找叫云互跟裂粮粒母练塞钢顶策双留误础吸阻故寸盾晚丝女散焊功株亲院冷彻弹错散商视艺灭版烈零室轻血倍缺厘泵察绝富城冲喷壤简否柱李望盘磁雄似困巩益洲脱投送奴侧润盖挥距触星松送获兴独官混纪依未突架宽冬章湿偏纹吃执阀矿寨责熟稳夺硬价努翻奇甲预职评读背协损棉侵灰虽矛厚罗泥辟告卵箱掌氧恩爱停曾溶营终纲孟钱待尽俄缩沙退陈讨奋械载胞幼哪剥迫旋征槽倒握担仍呀鲜吧卡粗介钻逐弱脚怕盐末阴丰雾冠丙街莱贝辐肠付吉渗瑞惊顿挤秒悬姆烂森糖圣凹陶词迟蚕亿矩康遵牧遭幅园腔订香肉弟屋敏恢忘编印蜂急拿扩伤飞露核缘游振操央伍域甚迅辉异序免纸夜乡久隶缸夹念兰映沟乙吗儒杀汽磷艰晶插埃燃欢铁补咱芽永瓦倾阵碳演威附牙芽永瓦斜灌欧献顺猪洋腐请透司危括脉宜笑若尾束壮暴企菜穗楚汉愈绿拖牛份染既秋遍锻玉夏疗尖殖井费州访吹荣铜沿替滚客召旱悟刺脑措贯藏敢令隙炉壳硫煤迎铸粘探临薄旬善福纵择礼愿伏残雷延烟句纯渐耕跑泽慢栽鲁赤繁境潮横掉锥希池败船假亮谓托伙哲怀割摆贡呈劲财仪沉炼麻罪祖息车穿货销齐鼠抽画饲龙库守筑房歌寒喜哥洗蚀废纳腹乎录镜妇恶脂庄擦险赞钟摇典柄辩竹谷卖乱虚桥奥伯赶垂途额壁网截野遗静谋弄挂课镇妄盛耐援扎虑键归符庆聚绕摩忙舞遇索顾胶羊湖钉仁音迹碎伸灯避泛亡答勇频皇柳哈揭甘诺概宪浓岛袭谁洪谢炮浇斑讯懂灵蛋闭孩释乳巨徒私银伊景坦累匀霉杜乐勒隔弯绩招绍胡呼痛峰零柴簧午跳居尚丁秦稍追梁折耗碱殊岗挖氏刃剧堆赫荷胸衡勤膜篇登驻案刊秧缓凸役剪川雪链渔啦脸户洛孢勃盟买杨宗焦赛旗滤硅炭股坐蒸凝竟陷枪黎救冒暗洞犯筒您宋弧爆谬涂味津臂障褐陆啊健尊豆拔莫抵桑坡缝警挑污冰柬嘴啥饭塑寄赵喊垫丹渡耳刨虎笔稀昆浪萨茶滴浅拥穴覆伦娘吨浸袖珠雌妈紫戏塔锤震岁貌洁剖牢锋疑霸闪埔猛诉刷狠忽灾闹乔唐漏闻沈熔氯荒茎男凡抢像浆旁玻亦忠唱蒙予纷捕锁尤乘乌智淡允叛畜俘摸锈扫毕璃宝芯爷鉴秘净蒋钙肩腾枯抛轨堂拌爸循诱祝励肯酒绳穷塘燥泡袋朗喂铝软渠颗惯贸粪综墙趋彼届墨碍启逆卸航衣孙龄岭骗休借".$addChars;break;default://默认去掉了容易混淆的字符oOLl和数字01,要添加请使用addChars参数$chars='ABCDEFGHIJKMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789'.$addChars;break;}if($len>10){//位数过长重复字符串一定次数$chars=$type==1?str_repeat($chars,$len):str_repeat($chars,5);}if($type!=4){$chars=str_shuffle($chars);$str=substr($chars,0,$len);}else{//中文随机字for($i=0;$i<$len;$i++){$str.=self::msubstr($chars,floor(mt_rand(0,mb_strlen($chars,'utf-8')-1)),1);}}return$str;}/***+----------------------------------------------------------*生成一定数量的随机数,并且不重复+----------------------------------------------------------**@paraminteger$number数量*@paramstring$len长度*@paramstring$type字串类型*0字母1数字其它混合*+----------------------------------------------------------*@returnstring+----------------------------------------------------------*/publicfunctionbuild_count_rand($number,$length=4,$mode=1){if($mode==1&&$length<strlen($number)){//不足以生成一定数量的不重复数字returnfalse;}$rand=array();for($i=0;$i<$number;$i++){$rand[]=rand_string($length,$mode);}$unqiue=array_unique($rand);if(count($unqiue)==count($rand)){return$rand;}$count=count($rand)-count($unqiue);for($i=0;$i<$count*3;$i++){$rand[]=rand_string($length,$mode);}$rand=array_slice(array_unique($rand),0,$number);return$rand;}/***+----------------------------------------------------------*带格式生成随机字符支持批量生成*但可能存在重复+----------------------------------------------------------**@paramstring$format字符格式*#表示数字*表示字母和数字$表示字母*@paraminteger$number生成数量*+----------------------------------------------------------*@returnstring|array*+----------------------------------------------------------*/publicfunctionbuild_format_rand($format,$number=1){$str=array();$length=strlen($format);for($j=0;$j<$number;$j++){$strtemp='';for($i=0;$i<$length;$i++){$char=substr($format,$i,1);switch($char){case"*"://字母和数字混合$strtemp.=String::rand_string(1);break;case"#"://数字$strtemp.=String::rand_string(1,1);break;case"$"://大写字母$strtemp.=String::rand_string(1,2);break;default://其它格式均不转换$strtemp.=$char;break;}}$str[]=$strtemp;}return$number==1?$strtemp:$str;}/***+----------------------------------------------------------*获取一定范围内的随机数字位数不足补零*+----------------------------------------------------------**@paraminteger$min最小值*@paraminteger$max最大值+----------------------------------------------------------*@returnstring+----------------------------------------------------------*/publicfunctionrand_number($min,$max){returnsprintf("%0".strlen($max)."d",mt_rand($min,$max));}

    • PHP代码
    • 94阅读
    • 2022-06-01

  • PHP非常实用下载远程图片
    PHP非常实用下载远程图片

    /***下载远程图片*@paramstring$url图片的绝对url*@paramstring$filepath文件的完整路径(例如/www/images/test),此函数会自动根据图片url和http头信息确定图片的后缀名*@paramstring$filename要保存的文件名(不含扩展名)*@returnmixed下载成功返回一个描述图片信息的数组,下载失败则返回false*/staticpublicfunctiondownloadImage($url,$filepath,$filename){//服务器返回的头信息$responseHeaders=array();//原始图片名$originalfilename='';//图片的后缀名$ext='';$ch=curl_init($url);//设置curl_exec返回的值包含Http头curl_setopt($ch,CURLOPT_HEADER,1);//设置curl_exec返回的值包含Http内容curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//设置抓取跳转(http301,302)后的页面curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);//设置最多的HTTP重定向的数量curl_setopt($ch,CURLOPT_MAXREDIRS,3);//服务器返回的数据(包括http头信息和内容)$html=curl_exec($ch);//获取此次抓取的相关信息$httpinfo=curl_getinfo($ch);curl_close($ch);if($html!==false){//分离response的header和body,由于服务器可能使用了302跳转,所以此处需要将字符串分离为2+跳转次数个子串$httpArr=explode("\r\n\r\n",$html,2+$httpinfo['redirect_count']);//倒数第二段是服务器最后一次response的http头$header=$httpArr[count($httpArr)-2];//倒数第一段是服务器最后一次response的内容$body=$httpArr[count($httpArr)-1];$header.="\r\n";//获取最后一次response的header信息preg_match_all('/([a-z0-9-_]+):\s*([^\r\n]+)\r\n/i',$header,$matches);if(!empty($matches)&&count($matches)==3&&!empty($matches[1])&&!empty($matches[1])){for($i=0;$i<count($matches[1]);$i++){if(array_key_exists($i,$matches[2])){$responseHeaders[$matches[1][$i]]=$matches[2][$i];}}}//获取图片后缀名if(0<preg_match('{(?:[^\/\\\\]+)\.(jpg|jpeg|gif|png|bmp)$}i',$url,$matches)){$originalfilename=$matches[0];$ext=$matches[1];}else{if(array_key_exists('Content-Type',$responseHeaders)){if(0<preg_match('{image/(\w+)}i',$responseHeaders['Content-Type'],$extmatches)){$ext=$extmatches[1];}}}//保存文件if(!empty($ext)){//如果目录不存在,则先要创建目录if(!is_dir($filepath)){mkdir($filepath,0777,true);}$filepath.='/'.$filename.".$ext";$local_file=fopen($filepath,'w');if(false!==$local_file){if(false!==fwrite($local_file,$body)){fclose($local_file);$sizeinfo=getimagesize($filepath);returnarray('filepath'=>realpath($filepath),'width'=>$sizeinfo[0],'height'=>$sizeinfo[1],'orginalfilename'=>$originalfilename,'filename'=>pathinfo($filepath,PATHINFO_BASENAME));}}}}returnfalse;}

    • PHP代码
    • 107阅读
    • 2022-06-01

  • PHP foreach遍历数组(多种方式)
    PHP foreach遍历数组(多种方式)

    遍历方式如下:注:【.】是连接符<?php#第一种字符串key&value遍历$array["a"]=1;$array["b"]=2;$array["c"]=3;$array["d"]=4;$array["r"]=5;#$key是下标,$value是值foreach($arrayas$key=>$value){echo$key.":".$value."<br/>";}echo"<hr/>";<?php#第二种下标key&value遍历$arrays[0]=1;$arrays[1]=2;$arrays[2]=3;$arrays[3]=4;$arrays[4]=5;foreach($arraysas$key=>$value){echo$key.":".$value."<br/>";}echo"<hr/>";<?php#第三种直接赋值,遍历元素值,下标在外部存在$array=array('王语嫣','小龙女','赵灵儿','沐婉清');$num=0;foreach($arrayas$value){echo'数组第'.$num.'个元素的值是:'.$value.'<br>';$num++;}echo"<hr/>";#for通过下标遍历for($i=0;$i<count($array);$i++){echo$array[$i].",";}效果如下: 

    • PHP代码
    • 178阅读
    • 2022-05-08

  • TP5伪静态规则配置
    TP5伪静态规则配置

    nginx下htaccess配置项目根目录下(public下)新建命名为nginx.htaccess的文件,放入一下内容if(!-e$request_filename){rewrite^(.*)$/index.php?s=$1last;break;}apache下htaccess配置项目根目录下(public下)新建命名为.htaccess的文件(文件名前面带点)<IfModulemod_rewrite.c>Options+FollowSymlinks-MultiviewsRewriteEngineOnRewriteCond%{REQUEST_FILENAME}!-dRewriteCond%{REQUEST_FILENAME}!-fRewriteRule^(.*)$index.php?/$1[QSA,PT,L]</IfModule>

    • PHP代码
    • 123阅读
    • 2022-05-08

  • tp5去重查询、统计
    tp5去重查询、统计

    代码如下:统计个数:$list['num']=db('web_allocation')//表名->where($where_n)//查询条件->count('distinct(package_type)');//要统计的字段查询:$data=$test_data->Distinct(true)->field('descriprion')->order('descriptiondesc')->select()还有一种使用groupby这个更好用些。distinct只能对单一字段去重,而group适用于整个表,效果不错。推荐使用groupby

    • PHP代码
    • 139阅读
    • 2022-05-08

  • tp5跳外部链接
    tp5跳外部链接

    publicfunctionvip(){header('location:https://qun.qq.com/join.html');exit;}

    • PHP代码
    • 149阅读
    • 2022-05-08

  • tp5多字段排序
    tp5多字段排序

    order("iddesc,namedesc")

    • PHP代码
    • 128阅读
    • 2022-05-08

  • php利用while单循环实现100行10列表格输出且每行颜色不一样
    php利用while单循环实现100行10列表格输出且每行颜色不一样

    如图所示,是利用js、php中while单循环配合if条件语句而实现每行颜色不同,且鼠标移动到哪一行就显示不同颜色的效果。具体实现代码如下:php<?phpecho"<tableborder=1align=centerwidth=800>";echo"<caption><h1>学生成绩表</h1></caption>";$i=0;$j=0;while($i<1000){if($i%10==0){if($j++%2==0){$bgc="#cccccc";}else{$bgc="#aaffaa";}echo"<trοnmοuseοver='show(this)'οnmοuseοut='noshow(this)'bgcolor='".$bgc."'>";}echo"<td>".$i."</td>";if(++$i%10==0){echo"</tr>";}}echo"</table>";?>js<script>functionshow(obj){yc=obj.style.backgroundColor;obj.style.backgroundColor="red";}functionnoshow(obj){obj.style.backgroundColor=yc;}</script>

    • PHP代码
    • 185阅读
    • 2022-05-04

站三界导航
本站声明:本站严格遵守国家相关法律规定,非正规网站一概不予收录。本站所有资料取之于互联网,任何公司或个人参考使用本资料请自辨真伪、后果自负,站三界导航不承担任何责任。在此特别感谢您对站三界导航的支持与厚爱。