$code, 'message' => $msg, 'data'=>$data ); if($json) return json_encode_cn($r); else return $r; } /** * safeCheck() 参数检查,并防XSS 和 SQL注入 * * @param mixed $str * @param bool $number 是否做数字检查 1-(默认)数字 0-不是数字 * @param bool $script 是否过滤script 1-(默认)过滤;0-不过滤 * @return */ function safeCheck($str, $number = 1, $script = 1){ $str = trim($str); //防止SQL注入 if(!get_magic_quotes_gpc()){ $str = addslashes($str); } //数字检查 if($number == 1){ $isint = preg_match('/^-?\d+$/',$str); $isfloat = preg_match('/^(-?\d+)(\.\d+)?$/',$str); if(!$isint && !$isfloat){ die('参数必须为数字'); } }else{ //过滤script、防XSS if($script == 1){ $str = htmlspecialchars($str); } } return $str; } /** * ckReplace() ckEditor编辑器内容处理 * * @param mixed $content * @return */ function ckReplace($content){ if (!empty($content)){ $content = str_replace("'", "'", $content); $content = str_replace("
", "

", $content); } return $content; } /** * HTMLEncode()将特殊字符转成HTML格式,主要用于textarea获取值 * * @param mixed $str * @return */ function HTMLEncode($str){ if (!empty($str)){ $str = str_replace("&","&",$str); $str = str_replace(">",">",$str); $str = str_replace("<","<",$str); $str = str_replace(CHR(32)," ",$str); $str = str_replace(CHR(9),"    ",$str); $str = str_replace(CHR(9),"    ",$str); $str = str_replace(CHR(34),""",$str); $str = str_replace("'","'",$str); $str = str_replace(CHR(39),"'",$str); $str = str_replace(CHR(13),"",$str); $str = str_replace(CHR(10),"
",$str); } return $str; } /** * HTMLDecode()将HTMLEncode的数据还原 * * @param mixed $str * @return */ Function HTMLDecode($str){ if (!empty($str)){ $str = str_replace("&","&",$str); $str = str_replace(">",">",$str); $str = str_replace("<","<",$str); $str = str_replace(" ",CHR(32),$str); $str = str_replace("    ",CHR(9),$str); $str = str_replace("    ",CHR(9),$str); $str = str_replace(""",CHR(34),$str); $str = str_replace("'",CHR(39),$str); $str = str_replace("",CHR(13),$str); $str = str_replace("
",CHR(10),$str); $str = str_replace("
",CHR(10),$str); $str = str_replace("
",CHR(10),$str); } return $str; } /** * 生成随机数randcode() * * @param mixed $len * @param integer $mode * @return */ function randcode($len, $mode = 2){ $rcode = ''; switch($mode){ case 1: //去除0、o、O、l等易混淆字符 $chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghijkmnpqrstuvwxyz'; break; case 2: //纯数字 $chars = '0123456789'; break; case 3: //全数字+大小写字母 $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; break; case 4: //全数字+大小写字母+一些特殊字符 $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz~!@#$%^&*()'; break; } $count = strlen($chars) - 1; mt_srand((double)microtime() * 1000000); for($i = 0; $i < $len; $i++) { $rcode .= $chars[mt_rand(0, $count)]; } return $rcode; } /** * Json_encode的Unicode中文(\u4e2d\u56fd)问题 * * @param mixed $array * @return */ function json_encode_cn($array){ $str = json_encode($array); $os = Env::getOSType(); if($os == 'windows') $ucs = 'UCS-2'; else $ucs = 'UCS-2BE'; if (version_compare(PHP_VERSION, '5.5.0') >= 0) { $str = preg_replace_callback("/\\\\u([0-9a-f]{4})/i", function($matches) use($ucs){return iconv($ucs, "UTF-8", pack("H*", $matches[1]));}, $str); /** //2018/12/23 修正PHP7.2以上版本不支持create_function }else if (version_compare(PHP_VERSION, '5.5.0') >= 0) { $str = preg_replace_callback("/\\\\u([0-9a-f]{4})/i", create_function('$matches', 'return iconv("'.$ucs.'", "UTF-8", pack("H*", $matches[1]));'), $str); **/ }else{ $str = preg_replace("#\\\u([0-9a-f]{4})#ie", "iconv('".$ucs."', 'UTF-8', pack('H4', '\\1'))", $str); } return $str; } /** * 操作响应通知(默认json格式) * * @param $msg 消息内容 * @param $code 消息代码 * @return */ function action_msg($msg, $code, $json = true){ $r = array( 'code' => $code, 'msg' => $msg ); if($json) return json_encode_cn($r); else return $r; } /** * 检测图片宽高是否符合要求,常用于图片上传 * @param $filepath 文件绝对路径 * @param $targetWidth 目标宽度 * @param $targetHeight 目标高度 * @return bool */ function checkImgSize($filepath, $targetWidth, $targetHeight) { $imageinfo = getimagesize($filepath); if ($imageinfo[0] != $targetWidth || $imageinfo[1] != $targetHeight) { return false; } return true; } ?>