/**
* 过滤参数,防SQL注入
* @param string $str 接受的参数
* @return string
*/
function filter_sql($str)
{
$farr = array(
//"/select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile|dump/is"
"/select|insert|update|delete/is"
);
$str = preg_replace($farr, '', $str);
return trim(addslashes($str));
}
//消息框提示并跳转
function msg($a,$url){
echo "<script>alert('".$a."');window.location.href='".$url."';</script>";
exit();
}
//获取当前页面完整url
function GetPageUrl()
{
$nowurl='http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
return $nowurl;
}
/**
* 取得当前页面完整url
*/
function geturl() {
$url = '';
if (isset($_SERVER['REQUEST_URI'])) {
$url = $_SERVER['REQUEST_URI'];
}
else {
$url = $_SERVER['Php_SELF'];
$url .= empty($_SERVER['QUERY_STRING'])?'':'?'.$_SERVER['QUERY_STRING'];
}
return $url;
}
//随机字符 echo getrandstr();
function getrandstr()
{
global $rands;
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
$randstr = str_shuffle($str); //打乱字符串
$rands = substr($randstr, 0, 20); //substr(string,start,length);返回字符串的一部分
return $rands;
}
/**
* 获取客户端IP
* @return string
*/
function getip() { //获取客户端IP
if ( isset($_SERVER[ "HTTP_CDN_SRC_IP" ]) ) { //获取网宿CDN真实客户IP
return replace_ip( $_SERVER[ "HTTP_CDN_SRC_IP" ] );
}
if ( isset($_SERVER[ "HTTP_X_FORWARDED_FOR" ]) ) { //获取网宿、阿里云真实客户IP,参考:https://help.aliyun.com/knowledge_detail/40535.html
return replace_ip( $_SERVER[ "HTTP_X_FORWARDED_FOR" ] );
}
if ( isset($_SERVER[ "HTTP_CLIENT_IP" ]) ) {
return $_SERVER[ "HTTP_CLIENT_IP" ];
}
if ( isset($_SERVER[ "HTTP_X_FORWARDED" ]) ) {
return $_SERVER[ "HTTP_X_FORWARDED" ];
}
if ( isset($_SERVER[ "HTTP_FORWARDED_FOR" ]) ) {
return $_SERVER[ "HTTP_FORWARDED_FOR" ];
}
if ( isset($_SERVER[ "HTTP_FORWARDED" ]) ) {
return $_SERVER[ "HTTP_FORWARDED" ];
}
$httpip = $_SERVER[ 'REMOTE_ADDR' ];
if ( !preg_match( "/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/", $httpip ) ) {
$httpip = "127.0.0.1";
}
return $httpip;
}
/**
* 拆分代理IP
* @return string
*/
function replace_ip($ip)
{
if (!$ip) {
return "";
}
$httpip_array = explode(",", $ip);
if ($httpip_array[0]) {
return $httpip_array[0];
} else {
return $ip;
}
}
/**
* 返回json格式的处理结果,主要用于ajax
* @param string $code 状态码,1成功,0失败
* @param string $msg 返回的信息
* @return string
*/
function result_json($code, $msg)
{
$str = array("code" => $code, "msg" => $msg);
return json($str);
}
/**
* 过滤HTML参数
* @param string $str 接受的参数
* @return string
*/
function filter_html($str)
{
$farr = array(
"/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU",
"/<(\\/?)(script|i?frame|style|html|body|title|link|meta|object|\\?|\\%)([^>]*?)>/isU"
);
$str = preg_replace($farr, '', $str);
return trim(htmlspecialchars($str));
}
/**
* 对象转数组
* @param object $obj 对象
* @return array
*/
function object_to_array($obj)
{
$obj = (array)$obj;
foreach ($obj as $k => $v) {
if (gettype($v) == 'resource') {
return;
}
if (gettype($v) == 'object' || gettype($v) == 'array') {
$obj[$k] = (array)object_to_array($v);
}
}
return $obj;
}
/**
* 获取浏览器以及版本号
* @return string
*/
function get_userbrowser()
{
$agent = Request::header('USER-AGENT');
$browser = '';
$browser_ver = '';
if (preg_match('/UBrowser/i', $agent, $regs) || preg_match('/UC/i', $agent, $regs)) {
$browser = 'UC浏览器';
$browser_ver = '';
}elseif (preg_match('/QQBrowser/i', $agent, $regs)) {
$browser = 'QQ浏览器';
$browser_ver = '';
}elseif(preg_match('/OmniWeb\/(v*)([^\s|;]+)/i', $agent, $regs)) {
$browser = 'OmniWeb';
$browser_ver = $regs[2];
}elseif(preg_match('/Netscape([\d]*)\/([^\s]+)/i', $agent, $regs)) {
$browser = 'Netscape';
$browser_ver = $regs[2];
}elseif(preg_match('/safari\/([^\s]+)/i', $agent, $regs)) {
$browser = 'Safari';
$browser_ver = $regs[1];
}elseif(preg_match('/MSIE\s([^\s|;]+)/i', $agent, $regs)) {
$browser = 'IE';
$browser_ver = $regs[1];
}elseif(preg_match('/Opera[\s|\/]([^\s]+)/i', $agent, $regs)) {
$browser = 'Opera';
$browser_ver = $regs[1];
}elseif(preg_match('/NetCaptor\s([^\s|;]+)/i', $agent, $regs)) {
$browser = '(IE ' . $browser_ver . ') NetCaptor';
$browser_ver = $regs[1];
}elseif(preg_match('/Maxthon/i', $agent, $regs)) {
$browser = '(IE ' . $browser_ver . ') Maxthon';
$browser_ver = '';
}elseif(preg_match('/360SE/i', $agent, $regs)) {
$browser = '(IE ' . $browser_ver . ') 360SE';
$browser_ver = '';
}elseif(preg_match('/SE 2.x/i', $agent, $regs)) {
$browser = '(IE ' . $browser_ver . ') 搜狗';
$browser_ver = '';
}elseif(preg_match('/FireFox\/([^\s]+)/i', $agent, $regs)) {
$browser = 'FireFox';
$browser_ver = $regs[1];
}elseif(preg_match('/Lynx\/([^\s]+)/i', $agent, $regs)) {
$browser = 'Lynx';
$browser_ver = $regs[1];
}elseif(preg_match('/Chrome\/([^\s]+)/i', $agent, $regs)) {
$browser = 'Chrome';
$browser_ver = $regs[1];
}
if ($browser != '') {
return $browser . ' ' . $browser_ver;
} else {
return 'unknow browser';
}
}
/**
* 获取客户端操作系统
* @return string
*/
function get_userOS()
{
$agent = Request::header('USER-AGENT');
$os = false;
if (strpos($agent, 'Android') !== false) {//strpos()定位出第一次出现字符串的位置,这里定位为0
preg_match("/(?<=Android )[\d\.]{1,}/", $agent, $version);
$os = 'Android '.$version[0];
} elseif (strpos($agent, 'iPhone') !== false) {
preg_match("/(?<=CPU iPhone OS )[\d\_]{1,}/", $agent, $version);
$os = 'iPhone '.str_replace('_', '.', $version[0]);
} elseif (strpos($agent, 'iPad') !== false) {
preg_match("/(?<=CPU OS )[\d\_]{1,}/", $agent, $version);
$os = 'iPad '.str_replace('_', '.', $version[0]);
} else if (preg_match('/win/i', $agent) && strpos($agent, '95')) {
$os = 'Windows 95';
} else if (preg_match('/win 9x/i', $agent) && strpos($agent, '4.90')) {
$os = 'Windows ME';
} else if (preg_match('/win/i', $agent) && preg_match('/98/i', $agent)) {
$os = 'Windows 98';
} else if (preg_match('/win/i', $agent) && preg_match('/nt 6.0/i', $agent)) {
$os = 'Windows Vista';
} else if (preg_match('/win/i', $agent) && preg_match('/nt 6.1/i', $agent)) {
$os = 'Windows 7';
} else if (preg_match('/win/i', $agent) && preg_match('/nt 6.2/i', $agent)) {
$os = 'Windows 8';
} else if (preg_match('/win/i', $agent) && preg_match('/nt 10.0/i', $agent)) {
$os = 'Windows 10';#添加win10判断
} else if (preg_match('/win/i', $agent) && preg_match('/nt 5.1/i', $agent)) {
$os = 'Windows XP';
} else if (preg_match('/win/i', $agent) && preg_match('/nt 5/i', $agent)) {
$os = 'Windows 2000';
} else if (preg_match('/win/i', $agent) && preg_match('/nt/i', $agent)) {
$os = 'Windows NT';
} else if (preg_match('/win/i', $agent) && preg_match('/32/i', $agent)) {
$os = 'Windows 32';
} else if (preg_match('/linux/i', $agent)) {
$os = 'Linux';
} else if (preg_match('/unix/i', $agent)) {
$os = 'Unix';
} else if (preg_match('/sun/i', $agent) && preg_match('/os/i', $agent)) {
$os = 'SunOS';
} else if (preg_match('/ibm/i', $agent) && preg_match('/os/i', $agent)) {
$os = 'IBM OS/2';
} else if (preg_match('/Mac/i', $agent) && preg_match('/PC/i', $agent)) {
$os = 'Macintosh';
} else if (preg_match('/PowerPC/i', $agent)) {
$os = 'PowerPC';
} else if (preg_match('/AIX/i', $agent)) {
$os = 'AIX';
} else if (preg_match('/HPUX/i', $agent)) {
$os = 'HPUX';
} else if (preg_match('/NetBSD/i', $agent)) {
$os = 'NetBSD';
} else if (preg_match('/BSD/i', $agent)) {
$os = 'BSD';
} else if (preg_match('/OSF1/i', $agent)) {
$os = 'OSF1';
} else if (preg_match('/IRIX/i', $agent)) {
$os = 'IRIX';
} else if (preg_match('/FreeBSD/i', $agent)) {
$os = 'FreeBSD';
} else if (preg_match('/teleport/i', $agent)) {
$os = 'teleport';
} else if (preg_match('/flashget/i', $agent)) {
$os = 'flashget';
} else if (preg_match('/webzip/i', $agent)) {
$os = 'webzip';
} else if (preg_match('/offline/i', $agent)) {
$os = 'offline';
} else {
$os = 'Unknown';
}
return $os;
}
/**
* 获取本周所有日期
*/
function get_week($time = '', $format='Y-m-d'){
$time = $time != '' ? $time : time();
//获取当前周几
$week = date('w', $time);
$date = [];
for ($i=1; $i<=7; $i++){
$date[$i] = date($format ,strtotime( '+' . $i-$week .' days', $time));
}
return $date;
}
/**
* 获取最近$n天所有日期
*/
function get_dates($n=7,$time = '', $format='Y-m-d'){
$time = $time != '' ? $time : time();
//组合数据
$date = [];
for ($i=1; $i<=$n; $i++){
$date[$i] = date($format ,strtotime( '+' . $i-$n .' days', $time));
}
return $date;
}
/**
* 获取最近N个月起至时间
*/
function get_month($n=6){
for($i=0;$i<$n;$i++){
if($i==0){
$date[$i]['month'] = date('Y-m',mktime(0,0,0,date('m'),1,date('Y')));
$date[$i]['start_time'] = date('Y-m-d H:i:s',mktime(0,0,0,date('m'),1,date('Y')));
$date[$i]['end_time'] = date('Y-m-d H:i:s',time());
}else{
$date[$i]['month'] = date('Y-m',mktime(0,0,0,date('m')-$i,1,date('Y')));
$date[$i]['start_time'] = date('Y-m-d H:i:s',mktime(0,0,0,date('m')-$i,1,date('Y')));
$date[$i]['end_time'] = date('Y-m-d H:i:s',mktime(23,59,59,date('m')-$i,date('t',mktime(0,0,0,date('m')-$i,1,date('Y'))),date('Y')));
}
}
return array_reverse($date);
}
//中文截取
function cnString($text, $length){
if(strlen($text) <= $length){
return $text;
}
$str = substr($text, 0, $length) . chr(0) ;
return $str;
}
//获取访问客户端类型
function is_mobile()
{
$agent = strtolower($_SERVER['HTTP_USER_AGENT']);
$is_pc = (strpos($agent, 'windows nt')) ? true : false;
$is_mac = (strpos($agent, 'mac os')) ? true : false;
$is_iphone = (strpos($agent, 'iphone')) ? true : false;
$is_android = (strpos($agent, 'android')) ? true : false;
$is_ipad = (strpos($agent, 'ipad')) ? true : false;
if($is_pc){
return 'Windows PC';
}
if($is_mac){
return 'MAC';
}
if($is_iphone){
return 'iphone';
}
if($is_android){
return '安卓';
}
if($is_ipad){
return 'ipad';
}
}
function t($str){
$str=str_replace("\t","_",$str);
$str=str_replace(" ","_",$str);
$str=str_replace("(","_",$str);
$str=str_replace(")","_",$str);
$str=str_replace("<","_",$str);
$str=str_replace(">","_",$str);
$str=str_replace("/*","",$str);
$str=str_replace("*/","",$str);
$str=str_replace("#","",$str);
$str=str_replace("-- ","",$str);
$str=str_replace("'","‘",$str);
$str=str_replace("\"","“",$str);
return $str;
}
//文件大小转换
function ShowSpaceInfo($filesize){
$size =$filesize;
$showsize = $size . " Byte";
if($size > 1024){
$size = ($size / 1024);
$showsize = round($size,2) . " KB";
}
if($size > 1024){
$size = ($size / 1024);
$showsize = round($size,2) . " MB";
}
if($size > 1024){
$size = ($size / 1024);
$showsize = round($size,2) . " GB";
}
$ShowSpaceInfo=$showsize;
return $ShowSpaceInfo;
}
//获取文件扩展名
function getFileExt($a){
return substr(strrchr($a, '.'), 1);
}
//消息框提示并跳转
function msg($a,$url){
echo "<script>alert('".$a."');window.location.href='".$url."';</script>";
exit();
}
//获取当前页面完整url
function GetPageUrl()
{
$nowurl='http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
return $nowurl;
}
/**
* 取得当前页面完整url
*/
function geturl() {
$url = '';
if (isset($_SERVER['REQUEST_URI'])) {
$url = $_SERVER['REQUEST_URI'];
}
else {
$url = $_SERVER['Php_SELF'];
$url .= empty($_SERVER['QUERY_STRING'])?'':'?'.$_SERVER['QUERY_STRING'];
}
return $url;
}
//随机字符 echo getrandstr();
function getrandstr()
{
global $rands;
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
$randstr = str_shuffle($str); //打乱字符串
$rands = substr($randstr, 0, 20); //substr(string,start,length);返回字符串的一部分
return $rands;
}
//获取当前PHP页面文件名
function php_self(){
$php_self=substr($_SERVER['PHP_SELF'],strrpos($_SERVER['PHP_SELF'],'/')+1);
return $php_self;
}
//判断mysql 是否支持
function mysqliinstalled (){
if (function_exists ("mysqli_connect")){
return true;
} else {
return false;
}
}
function cutstr_html1($string,$length=0,$ellipsis=''){
$string=strip_tags($string);
$string=preg_replace('/\n/is','',$string);
$string=preg_replace('/ | /is','',$string);
$string=preg_replace('/ /is','',$string);
preg_match_all("/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/",$string,$string);
if(is_array($string)&&!empty($string[0])){
if(is_numeric($length)&&$length){
$string=join('',array_slice($string[0],0,$length)).$ellipsis;
}else{
$string=implode('',$string[0]);
}
}else{
$string='';
}
return $string;
}
function cutstr_html($text, $length)
{
if(mb_strlen($text, 'utf8') > $length)
return mb_substr($text, 0, $length, 'utf8').'...';
return $text;
}
function clearHtml($content){
$content=preg_replace("/<a[^>]*>/i","",$content);
$content=preg_replace("/<\/a>/i","",$content);
$content=preg_replace("/<div[^>]*>/i","",$content);
$content=preg_replace("/<\/div>/i","",$content);
$content=preg_replace("/<!--[^>]*-->/i","",$content);//注释内容
$content=preg_replace("/style=.+?['|\"]/i",'',$content);//去除样式
$content=preg_replace("/class=.+?['|\"]/i",'',$content);//去除样式
$content=preg_replace("/id=.+?['|\"]/i",'',$content);//去除样式
$content=preg_replace("/lang=.+?['|\"]/i",'',$content);//去除样式
$content=preg_replace("/width=.+?['|\"]/i",'',$content);//去除样式
$content=preg_replace("/height=.+?['|\"]/i",'',$content);//去除样式
$content=preg_replace("/border=.+?['|\"]/i",'',$content);//去除样式
$content=preg_replace("/face=.+?['|\"]/i",'',$content);//去除样式
$content=preg_replace("/face=.+?['|\"]/",'',$content);//去除样式 只允许小写 正则匹配没有带 i 参数
return $content;
}
function formatdata($addtime){
$rsdatay=date("Y",strtotime($addtime));
$rsdatam=date("m",strtotime($addtime));
$rsdatad=date("d",strtotime($addtime));
return $rsdatay."-".$rsdatam."-".$rsdatad;
}include_once "key.php";
function formatdata_d($addtime){
$rsdatam=date("m",strtotime($addtime));
$rsdatad=date("d",strtotime($addtime));
return $rsdatam."-".$rsdatad;
}
//防注入函数 主要是为了防止恶意写入后台数据库
function input_check($sql_str) {
$check=eregi('select|order by|from|and|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile|system_user|user|current_user|database|version', $sql_str); // 进行过滤
if($check){
echo "非法注入内容!";
exit();
}else{
return $sql_str;
}
}
function injCheck($sql_str) {
$check = preg_match('/select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile/', $sql_str);
if ($check) {
ok_info('/index.html','非法字符');
exit;
} else {
return $sql_str;
}
}
/**操作成功提示**/
function ok_info($url,$langinfo){
if($url==0){
echo("<script type='text/javascript'> alert('$langinfo');history.go(-1);</script>");
}else{
echo("<script type='text/javascript'> alert('$langinfo');location.href= '$url'; </script>");
}
exit;
}
function getIP() {
$realip = ''; //设置默认值
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$realip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$realip = $_SERVER['HTTP_CLIENT_IP'];
} else {
$realip = $_SERVER['REMOTE_ADDR'];
}
preg_match('/^((?:\d{1,3}\.){3}\d{1,3})/',$realip,$match);
return $match?$match[0]:false;
}
//文件大小转换
function ShowSpaceInfo($filesize){
$size =$filesize;
$showsize = $size . " Byte";
if($size > 1024){
$size = ($size / 1024);
$showsize = round($size,2) . " KB";
}
if($size > 1024){
$size = ($size / 1024);
$showsize = round($size,2) . " MB";
}
if($size > 1024){
$size = ($size / 1024);
$showsize = round($size,2) . " GB";
}
$ShowSpaceInfo=$showsize;
return $ShowSpaceInfo;
}
//获取文件扩展名
function getFileExt($a){
return substr(strrchr($a, '.'), 1);
}
function deldir($dir) {
//先删除目录下的文件:
$dh=opendir($dir);
while ($file=readdir($dh)) {
if($file!="." && $file!="..") {
$fullpath=$dir."/".$file;
if(!is_dir($fullpath)) {
unlink($fullpath);
} else {
deldir($fullpath);
}
}
}
closedir($dh);
//删除当前文件夹:
if(rmdir($dir)) {
return true;
} else {
return false;
}
}
function safe($val)
{
$val =trim($val);
if (!get_magic_quotes_gpc()) // 判断magic_quotes_gpc是否为打开
{
$val = addslashes($val); // magic_quotes_gpc没有打开的时候把数据过滤
}
if ($val === '') {
return '';
}
if (is_int($val)) {
return intval($val);
}
if (is_float($val)) {
if (preg_match('/^[+-]?(\\d*\\.\\d+([eE]?[+-]?\\d+)?|\\d+[eE][+-]?\\d+)$/', $val)) {
return $val;
}
return false;
}
if (is_string($val)) {
if (preg_match('/<script>(.*)<\\/script>/iS', $val, $match)) {
$val = $match[1];
}
if (preg_match('/<iframe>(.*)<\\/iframe>/iS', $val, $match)) {
$val = $match[1];
}
return $val;
}
return $val;
}
function usersafe($str)
{
if (empty($str)) return false;
$str = str_replace( '<br>', "", $str);
$str = str_replace( '<br/>', "", $str);
$str = str_replace( '<p>', "", $str);
$str = str_replace( '</p>', "", $str);
$str = str_replace( 'CR', "", $str);
$str = str_replace( 'ASCII', "", $str);
$str = str_replace( 'ASCII 0x0d', "", $str);
$str = str_replace( 'LF', "", $str);
$str = str_replace( 'ASCII 0x0a', "", $str);
$str = str_replace( '%', "", $str);
$str = str_replace( 'eval', "", $str);
$str = str_replace( 'open', "", $str);
$str = str_replace( 'sysopen', "", $str);
$str = str_replace( 'system', "", $str);
$str = str_replace( '$', "", $str);
$str = str_replace( 'ASCII 0x08', "", $str);
$str = str_replace("<SCRIPT>", "", $str);
$str = str_replace("</SCRIPT>", "", $str);
$str = str_replace("<script>", "", $str);
$str = str_replace("</script>", "", $str);
$str = str_replace("select","",$str);
$str = str_replace("join","",$str);
$str = str_replace("union","",$str);
$str = str_replace("where","",$str);
$str = str_replace("insert","",$str);
$str = str_replace("delete","",$str);
$str = str_replace("update","",$str);
$str = str_replace("like","",$str);
$str = str_replace("drop","",$str);
$str = str_replace("DROP","",$str);
$str = str_replace("create","",$str);
$str = str_replace("modify","",$str);
$str = str_replace("rename","",$str);
$str = str_replace("alter","",$str);
$str = str_replace("cas","",$str);
$str = str_replace("css","'",$str);
$str = str_replace("CSS","'",$str);
$str = str_replace("<!--","",$str);
$str = str_replace("convert","",$str);
$str = str_replace("md5","",$str);
$str = str_replace("passwd","",$str);
$str = str_replace("password","",$str);
$str = str_replace("../","",$str);
$str = str_replace("./","",$str);
$str = str_replace("Array","",$str);
$str = str_replace("or 1='1'","",$str);
$str = str_replace(";set|set&set;","",$str);
$str = str_replace("`set|set&set`","",$str);
$str = str_replace("--","",$str);
$str = str_replace("OR","",$str);
$str = str_replace("*","",$str);
$str = str_replace("-","",$str);
$str = str_replace("+","",$str);
$str = str_replace("'/","",$str);
$str = str_replace("-- ","",$str);
$str = str_replace(" -- ","",$str);
$str = str_replace(" --","",$str);
$str = str_replace("(","",$str);
$str = str_replace(")","",$str);
$str = str_replace("{","",$str);
$str = str_replace("}","",$str);
$str = str_replace("-1","",$str);
$str = str_replace("response","",$str);
$str = str_replace("write","",$str);
$str = str_replace("|","",$str);
$str = str_replace("`","",$str);
$str = str_replace("etc","",$str);
$str = str_replace("root","",$str);
$str = str_replace("!=","",$str);
$str = str_replace("$","",$str);
$str = str_replace("&","",$str);
$str = str_replace("&&","",$str);
$str = str_replace("==","",$str);
$str = str_replace("mailto:","",$str);
$str = str_replace("CHAR","",$str);
$str = str_replace("char","",$str);
$str=preg_replace("/<\!--.*?-->/si","",$str); //注释
$str=preg_replace("/<(\!.*?)>/si","",$str); //过滤DOCTYPE
$str=preg_replace("/<(\/?html.*?)>/si","",$str); //过滤html标签
$str=preg_replace("/<(\/?head.*?)>/si","",$str); //过滤head标签
$str=preg_replace("/<(\/?meta.*?)>/si","",$str); //过滤meta标签
$str=preg_replace("/<(\/?body.*?)>/si","",$str); //过滤body标签
$str=preg_replace("/<(\/?link.*?)>/si","",$str); //过滤link标签
$str=preg_replace("/<(\/?form.*?)>/si","",$str); //过滤form标签
$str=preg_replace("/cookie/si","COOKIE",$str); //过滤COOKIE标签
$str=preg_replace("/<(applet.*?)>(.*?)<(\/applet.*?)>/si","",$str); //过滤applet标签
$str=preg_replace("/<(\/?applet.*?)>/si","",$str); //过滤applet标签
$str=preg_replace("/<(style.*?)>(.*?)<(\/style.*?)>/si","",$str); //过滤style标签
$str=preg_replace("/<(\/?style.*?)>/si","",$str); //过滤style标签
$str=preg_replace("/<(title.*?)>(.*?)<(\/title.*?)>/si","",$str); //过滤title标签
$str=preg_replace("/<(\/?title.*?)>/si","",$str); //过滤title标签
$str=preg_replace("/<(object.*?)>(.*?)<(\/object.*?)>/si","",$str); //过滤object标签
$str=preg_replace("/<(\/?objec.*?)>/si","",$str); //过滤object标签
$str=preg_replace("/<(noframes.*?)>(.*?)<(\/noframes.*?)>/si","",$str); //过滤noframes标签
$str=preg_replace("/<(\/?noframes.*?)>/si","",$str); //过滤noframes标签
$str=preg_replace("/<(i?frame.*?)>(.*?)<(\/i?frame.*?)>/si","",$str); //过滤frame标签
$str=preg_replace("/<(\/?i?frame.*?)>/si","",$str); //过滤frame标签
$str=preg_replace("/<(script.*?)>(.*?)<(\/script.*?)>/si","",$str); //过滤script标签
$str=preg_replace("/<(\/?script.*?)>/si","",$str); //过滤script标签
$str=preg_replace("/javascript/si","Javascript",$str); //过滤script标签
$str=preg_replace("/vbscript/si","Vbscript",$str); //过滤script标签
$str=preg_replace("/on([a-z]+)\s*=/si","On\\1=",$str); //过滤script标签
$str=preg_replace("/&#/si","&#",$str); //过滤script标签
return $str;
}
function zhongwen($str){
//转换 GB2312 -> UTF-8
//$str = mb_convert_encoding($str, 'UTF-8', 'GB2312');
preg_match_all('/[\x{4e00}-\x{9fff}]+/u', $str, $matches);
$str = join('', $matches[0]);
//转换 UTF-8 -> GB2312
//$str = mb_convert_encoding($str, 'GB2312', 'UTF-8');
echo $str; //输出 中文字符
}
//验证是否为指定长度的字母/数字组合
function fun_text1($num1,$num2,$str)
{
Return (preg_match("/^[a-zA-Z0-9]{".$num1.",".$num2."}$/",$str))?true:false;
}
//验证是否为指定长度数字
function fun_text2($num1,$num2,$str)
{
return (preg_match("/^[0-9]{".$num1.",".$num2."}$/i",$str))?true:false;
}
//验证是否为指定长度汉字
function fun_font($num1,$num2,$str)
{
// preg_match("/^[\xa0-\xff]{1,4}$/", $string);
return (preg_match("/^([\x81-\xfe][\x40-\xfe]){".$num1.",".$num2."}$/",$str))?true:false;
}
//验证身份证号码
function fun_status($str)
{
return (preg_match('/(^([\d]{15}|[\d]{18}|[\d]{17}x)$)/',$str))?true:false;
}
//验证邮件地址
function fun_email($str){
return (preg_match('/^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$/',$str))?true:false;
}
//验证电话号码
function fun_phone($str)
{
return (preg_match("/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/",$str))?true:false;
}
//验证邮编
function fun_zip($str)
{
return (preg_match("/^[1-9]\d{5}$/",$str))?true:false;
}
//验证url地址
function fun_url($str)
{
return (preg_match("/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/",$str))?true:false;
}
// 数据入库 转义 特殊字符 传入值可为字符串 或 一维数组
function data_join(&$data)
{
if(get_magic_quotes_gpc() == false)
{
if (is_array($data))
{
foreach ($data as $k => $v)
{
$data[$k] = addslashes($v);
}
}
else
{
$data = addslashes($data);
}
}
Return $data;
}
// 数据出库 还原 特殊字符 传入值可为字符串 或 一/二维数组
function data_revert(&$data)
{
if (is_array($data))
{
foreach ($data as $k1 => $v1)
{
if (is_array($v1))
{
foreach ($v1 as $k2 => $v2)
{
$data[$k1][$k2] = stripslashes($v2);
}
}
else
{
$data[$k1] = stripslashes($v1);
}
}
}
else
{
$data = stripslashes($data);
}
Return $data;
}
// 数据显示 还原 数据格式 主要用于内容输出 传入值可为字符串 或 一/二维数组
// 执行此方法前应先data_revert(),表单内容无须此还原
function data_show(&$data)
{
if (is_array($data))
{
foreach ($data as $k1 => $v1)
{
if (is_array($v1))
{
foreach ($v1 as $k2 => $v2)
{
$data[$k1][$k2]=nl2br(htmlspecialchars($data[$k1][$k2]));
$data[$k1][$k2]=str_replace(" "," ",$data[$k1][$k2]);
$data[$k1][$k2]=str_replace("\n","<br>\n",$data[$k1][$k2]);
}
}
else
{
$data[$k1]=nl2br(htmlspecialchars($data[$k1]));
$data[$k1]=str_replace(" "," ",$data[$k1]);
$data[$k1]=str_replace("\n","<br>\n",$data[$k1]);
}
}
}
else
{
$data=nl2br(htmlspecialchars($data));
$data=str_replace(" "," ",$data);
$data=str_replace("\n","<br>\n",$data);
}
Return $data;
}
/*
//要求输入内容由数字、字母、下划线组成,不能以数字开头,有位数限制
//参数:$str,$num1,$num2
//返回值: 匹配成功返回匹配的次数
*/
function checkStr($str,$num1,$num2){
//正则
$reg='/^[a-zA-Z_]\w{'.($num1-1).','.($num2-1).'}$/';
return preg_match($reg,$str);
}
/*
Utf-8、gb2312都支持的汉字截取函数
cut_str(字符串, 截取长度, 开始长度, 编码);
编码默认为 utf-8
开始长度默认为 0
*/
function subString($string, $sublen, $start = 0, $code = 'UTF-8')
{
if($code == 'UTF-8')
{
$pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
preg_match_all($pa, $string, $t_string);
if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."...";
return join('', array_slice($t_string[0], $start, $sublen));
}
else
{
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string);
$tmpstr = '';
for($i=0; $i< $strlen; $i++)
{
if($i>=$start && $i< ($start+$sublen))
{
if(ord(substr($string, $i, 1))>129)
{
$tmpstr.= substr($string, $i, 2);
}
else
{
$tmpstr.= substr($string, $i, 1);
}
}
if(ord(substr($string, $i, 1))>129) $i++;
}
if(strlen($tmpstr)< $strlen ) $tmpstr.= "...";
return $tmpstr;
}
}
//只取汉字
function match_chinese($chars, $encoding = 'utf8')
{
$pattern = ($encoding == 'utf8') ? '/[\x{4e00}-\x{9fa5}]/u' : '/[\x80-\xFF]/';
preg_match_all($pattern, $chars, $result);
$temp = join('', $result[0]);
return $temp;
}
function isUrl($s)
{
return preg_match('/^http[s]?:\/\/' .
'(([0-9]{1,3}\.){3}[0-9]{1,3}' . // IP形式的URL- 199.194.52.184
'|' . // 允许IP和DOMAIN(域名)
'([0-9a-z_!~*\'()-]+\.)*' . // 三级域验证- www.
'([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.' . // 二级域验证
'[a-z]{2,6})' . // 顶级域验证.com or .museum
'(:[0-9]{1,4})?' . // 端口- :80
'((\/\?)|' . // 如果含有文件对文件部分进行校验
'(\/[0-9a-zA-Z_!~\*\'\(\)\.;\?:@&=\+\$,%#-\/]*)?)$/',
$s) == 1;
}
function getOrderID()
{
// return date('Y') . date('m') . date('d') . date('H') . date('i') . date('s') . mt_rand(10000, 99999);
return date('Y') . date('m') . date('d') . date('H') . date('i') . date('s') . mt_rand(100, 999);
}
/**
* POST方式访问接口
* @param string $data
* @return mixed
*/
function httpClient($Url,$data) {
$data = http_build_query($data);
try {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $Url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$res = curl_exec($ch);
curl_close($ch);
return $res;
} catch (Exception $e) {
$errorMsg = $e->getMessage();
return false;
}
}
function tojson($zt, $msg, $url)
{
exit(json_encode(["zt" => $zt, "msg" => $msg, "url" => $url]));
}
//监测手机电脑客户端
function isMobile(){
$useragent=isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
$useragent_commentsblock=preg_match('|\(.*?\)|',$useragent,$matches)>0?$matches[0]:'';
function CheckSubstrs($substrs,$text){
foreach($substrs as $substr)
if(false!==strpos($text,$substr)){
return true;
}
return false;
}
$mobile_os_list=array('Google Wireless Transcoder','Windows CE','WindowsCE','Symbian','Android','armv6l','armv5','Mobile','CentOS','mowser','AvantGo','Opera Mobi','J2ME/MIDP','Smartphone','Go.Web','Palm','iPAQ');
$mobile_token_list=array('Profile/MIDP','Configuration/CLDC-','160×160','176×220','240×240','240×320','320×240','UP.Browser','UP.Link','SymbianOS','PalmOS','PocketPC','SonyEricsson','Nokia','BlackBerry','Vodafone','BenQ','Novarra-Vision','Iris','NetFront','HTC_','Xda_','SAMSUNG-SGH','Wapaka','DoCoMo','iPhone','iPod');
$found_mobile=CheckSubstrs($mobile_os_list,$useragent_commentsblock) ||
CheckSubstrs($mobile_token_list,$useragent);
if ($found_mobile){
return true;
}else{
return false;
}
}
/* 方法一:获取随机字符串
* @param number $length 长度
* @param string $type 类型
* @param number $convert 转换大小写
* @return string 随机字符串
*/
function random($length = 6, $type = 'string', $convert = 0)
{
$config = array(
'number' => '1234567890',
'letter' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
'string' => 'abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789',
'all' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
);
if (!isset($config[$type]))
$type = 'string';
$string = $config[$type];
$code = '';
$strlen = strlen($string) - 1;
for ($i = 0; $i < $length; $i++) {
$code .= $string{mt_rand(0, $strlen)};
}
if (!empty($convert)) {
$code = ($convert > 0) ? strtoupper($code) : strtolower($code);
}
return $code;
}
如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!
txttool.com 说一段 esp56物联 查询128 IP查询