PHP基本简单实用函数
25-04-07 03:32
671
0
邮箱验证
function is_valid_email($email) { if (preg_match('/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/', $email)) { return true; } else { return false; } } OR function check_email($email) { $result = trim($email); if (filter_var($result, FILTER_VALIDATE_EMAIL)) { return true; } else { return false; } }
#301跳转
function redirect($url) { header('location:'.$url, false, 301); exit; }
获取客户端IP
function real_ip($type = 0) { $ip = $_SERVER['REMOTE_ADDR']; if ($type <= 0 && isset($_SERVER['HTTP_X_FORWARDED_FOR']) && preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) { foreach ($matches[0] as $xip) { if (filter_var($xip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) { $ip = $xip; break; } } } elseif ($type <= 0 && isset($_SERVER['HTTP_CLIENT_IP']) && filter_var($_SERVER['HTTP_CLIENT_IP'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif ($type <= 1 && isset($_SERVER['HTTP_CF_CONNECTING_IP']) && filter_var($_SERVER['HTTP_CF_CONNECTING_IP'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) { $ip = $_SERVER['HTTP_CF_CONNECTING_IP']; } elseif ($type <= 1 && isset($_SERVER['HTTP_X_REAL_IP']) && filter_var($_SERVER['HTTP_X_REAL_IP'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) { $ip = $_SERVER['HTTP_X_REAL_IP']; } return $ip; }
X_FORWARDED_FOR:之前的获取真实IP方式,极易被伪造IP
X_REAL_IP:在网站使用CDN的情况下选择此项,在不使用CDN的情况下也会被伪造
REMOTE_ADDR:直接获取真实请求IP,无法被伪造,但可能获取到的是CDN节点IP
取中间文本
function getSubstr($str, $leftStr, $rightStr) { $left = strpos($str, $leftStr); $right = strpos($str, $rightStr, $left); if ($left < 0) return ''; if ($right > 0) { return substr($str, $left + strlen($leftStr), $right - $left - strlen($leftStr)); } else { return substr($str, $left + strlen($leftStr)); } }
是否HTTPS访问
function is_https() { if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) { return true; } elseif (isset($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) == 'on' || $server['HTTPS'] == '1')) { return true; } elseif (isset($_SERVER['HTTP_X_CLIENT_SCHEME']) && $_SERVER['HTTP_X_CLIENT_SCHEME'] == 'https') { return true; } elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { return true; } elseif (isset($_SERVER['REQUEST_SCHEME']) && $_SERVER['REQUEST_SCHEME'] == 'https') { return true; } elseif (isset($_SERVER['HTTP_EWS_CUSTOME_SCHEME']) && $_SERVER['HTTP_EWS_CUSTOME_SCHEME'] == 'https') { return true; } return false; }
随机IP
function randIp() { return mt_rand(0, 255) . '.' . mt_rand(0, 255) . '.' . mt_rand(0, 255) . '.' . mt_rand(0, 255); }
毫秒时间戳
function msectime() { list($msec, $sec) = explode(' ', microtime()); return (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000); }
获取重定向地址
function getrealurl($url){ @$header = get_headers($url,1); if (strpos($header[0],'301') || strpos($header[0],'302')) { if(is_array($header['Location'])) { return $header['Location'][count($header['Location'])-1]; }else{ return $header['Location']; } }else { return $url; } }
jsonp转数组
function jsonp_decode($jsonp, $assoc = false) { $jsonp = trim($jsonp); if (isset($jsonp[0]) && $jsonp[0] !== '[' && $jsonp[0] !== '{') { $begin = strpos($jsonp, '('); if (false !== $begin) { $end = strrpos($jsonp, ')'); if (false !== $end) { $jsonp = substr($jsonp, $begin + 1, $end - $begin - 1); } } } return json_decode($jsonp, $assoc); }
秒数转换详细时间
/** * 将秒数转换为剩余详细时间! */ function Sec2Time($time) { if (is_numeric($time)) { $value = array( "years" => 0, "days" => 0, "hours" => 0, "minutes" => 0, "seconds" => 0, ); if ($time >= 31556926) { $value["years"] = floor($time / 31556926); $time = ($time % 31556926); } if ($time >= 86400) { $value["days"] = floor($time / 86400); $time = ($time % 86400); } if ($time >= 3600) { $value["hours"] = floor($time / 3600); $time = ($time % 3600); } if ($time >= 60) { $value["minutes"] = floor($time / 60); $time = ($time % 60); } $value["seconds"] = floor($time); $t = ($value["years"] >= 1 ? $value["years"] . "年" : '') . ($value["days"] >= 1 ? $value["days"] . "天" : '') . ($value["hours"] >= 1 ? $value["hours"] . "小时" : '') . ($value["minutes"] >= 1 ? $value["minutes"] . "分" : '') . ($value["seconds"] >= 1 ? $value["seconds"] . "秒" : ''); return (!empty($t) ? $t : '0秒'); } else { return (bool) FALSE; } }
时间相差秒数
/** * @param $startdate 开始时间 * @param int $enddate 结束时间 * 返回两者之间相差多少秒 */ function TimeLag($startdate, $enddate = -1) { global $date; $enddate = ($enddate == -1 ? $date : $enddate); $time = strtotime($enddate) - strtotime($startdate); //和结束时间的时间戳 $text = ''; $dater = floor(($time) / 86400); if ($dater > 0) { $time = $time - ($dater * 86400); $text .= $dater . '天'; } $hour = floor(($time) / 3600); if ($hour > 0) { $time = $time - ($hour * 3600); $text .= $hour . '小时'; } $minute = floor(($time) / 60); $time = $time - ($minute * 60); if ($minute > 0) { $text .= $minute . '分钟'; } $second = floor(($time) % 60); if ($second > 0) { $text .= $second . '秒'; } return $text; }
生成唯一token参数
/** * @param $vals 混淆函数 * 生成唯一token参数! */ function TokenCreate($vals = '1') { $key = mt_rand(); $hash = hash_hmac("sha1", $vals . mt_rand() . time(), $key, true); return str_replace(['=', '_', '-'], '', strtr(base64_encode($hash), '+/', '-_')); }
-
喵喵看书阅读小程序带后端
喵喵看书这是一个看小说的微信小程序,可在微信搜索到小程序:喵喵看书,或直接扫上面的二维码。当前项目为小程序的后台管理源码(前端),... 1039 0 24-06-02 -
php提高性能的几个小技巧
尽可能少使用魔法函数。 尽量少用错误抑制符@。 少使用正则表达式。 合理运用内存。 避免在循环表达式中进行计算。 如:for($i=0;$i<count($arr);$i++),可以写为:$max = count($arr); for($i=0; $i<$max; $i++) 避免在循环体里面操作数据库、调接口等耗时操作。减少网络请求次数、减少IO调用 513 0 21-04-13 -
人工智能及其应用(第3版) | 高等教育出版社二维码服务平台在线视频
人工智能是解决复杂工程问题的重要工具,是当前许多高新技术产品中的核心技术。读者通过学习本书,能够掌握人工智能的基本内容,了解人工智... 2594 0 24-08-06 -
HWiNFO - 硬件信息检测和系统监控软件
HWiNFO是一款功能强大的硬件信息检测和系统监控软件,可以详细列出电脑中的所有硬件组件,包括CPU、主板、内存、显卡、硬盘、声卡等,并显... 829 0 25-05-17 -
Git客户端 v2.26.1.1官方汉化版
Git客户端是免费、开源的分布式版本控制系统,用于Linux内核开发的版本控制工具,GUI的方便快捷,也不用记忆冗杂的命令,这里为大家分享的是W... 425 0 21-07-06 -
会议管理表格 - 企业管理表格
年度会议计划表.doc年度例行事务会议安排表.doc会议室使用申请表.doc会议登记簿.doc会议通告单.doc会议通知.doc会议议程表.doc会议记录表(... 921 0 24-07-30 -
四个教材试卷类免费资源网站
1.电子课本网(中小学课本):www.dzkbw.com,按照不同的分类,查找相应教材,关注公众号可以领取电子版2.第一试卷网:www.shijuan1.com,... 3390 0 24-04-24 -
Like Girl5.0.0爱情空间网站源码php
LikeGirl5.0.0更新说明新增前端全站pjax无限加载技术新增前后端Ajax数据异步请求技术新增前端头部头像背景高斯模糊开关新增前端Pjax无限加... 1518 0 24-05-24
发表我的评论
共0条评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~