<?php
//安全协议判断
function ssl()
{
if (isset($_SERVER['HTTPS']) && ('1' == $_SERVER['HTTPS'] || 'on' == strtolower($_SERVER['HTTPS']))) {
return true;
} elseif (isset($_SERVER['SERVER_PORT']) && ('443' == $_SERVER['SERVER_PORT'])) {
return true;
}
return false;
}
// 代理访问检测
function proxy()
{
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']) || !empty($_SERVER['HTTP_VIA']) || !empty($_SERVER['HTTP_PROXY_CONNECTION']) || !empty($_SERVER['HTTP_USER_AGENT_VIA'])) {
return true;
}
return false;
}
//机器人检测
function robot()
{
static $_robot = null;
if (is_null($_robot)) {
$spiders = 'Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla';
$browsers = 'MSIE|Netscape|Opera|Konqueror|Mozilla';
if (preg_match("/($browsers)/", $_SERVER['HTTP_USER_AGENT'])) {
$_robot = false;
} elseif (preg_match("/($spiders)/", $_SERVER['HTTP_USER_AGENT'])) {
$_robot = true;
} else {
$_robot = false;
}
}
return $_robot;
}
//浏览器检查
function browser($browser = '')
{
$browsers = array(
".*opera[ /]([0-9.]{1,10})" => "opera",
".compatible; MSIE[ /]([0-9.]{1,10}).*" => "ie",
".*Firefox/([0-9.+]{1,10})" => "firefox",
".Version/([0-9.+]{1,10})" => "safari",
".Chrome/([0-9.+]{1,10})" => "chrome"
);
$browser_info = array();
foreach ($browsers as $match => $browser_name) {
if (preg_match('#' . $match . '#i', $_SERVER["HTTP_USER_AGENT"], $matches)) {
$browser_info[] = $browser_name;
$browser_info[] = $matches[1];
$browser_info[] = $browser_name . ' ' . $matches[1];
}
}
return $browser_info;
}
// 判断Ajax方式提交
function ajax()
{
if (isset($_SERVER['HTTP_X_REQUESTED_WITH'])) {
if ('xmlhttprequest' == strtolower($_SERVER['HTTP_X_REQUESTED_WITH']))
return true;
}
return false;
}
function url($v,$filter=false)
{
if($filter) $v = filter_var($v, FILTER_SANITIZE_URL);
if (filter_var($v, FILTER_VALIDATE_URL)) {
return $v;
} else {
return false;
}
}
function ip($v)
{
if (filter_var($v, FILTER_VALIDATE_IP)) {
return $v;
} else {
return false;
}
}
function email($v,$filter=false)
{
if($filter) $v = filter_var($v, FILTER_SANITIZE_EMAIL);
if (filter_var($v, FILTER_VALIDATE_EMAIL)) {
return $v;
} else {
return false;
}
}
//身份证检查
function card($id_card)
{
include_once('card.php');
if (strlen($id_card) == 18 && idcard_checksum18($id_card)) {
return $id_card;
} elseif (strlen($id_card) == 15) {
$id_card2 = idcard_15to18($id_card);
if (idcard_checksum18($id_card2)) {
return $id_card;
} else {
return false;
}
} else {
return false;
}
}
//银行卡号检查
//位数16-20
function bank_card($card)
{
if (!preg_match('#^\d{16,20}$#', $card)) {
return false;
}
$return='';
$arr = include_once('bank_card.php');
foreach ($arr as $k => $v) {
if (preg_match('#'.$k.'#U',$card)){
$v=explode('-',$v,3);
$return['card']=$card;
$return['name']=$v[0];
$return['type']=$v[2];
return $return;
}
}
return false;
}
//手机号码检查
function shouji($phone)
{
if (preg_match('#^1[3458]{1}\d{9}$#', $phone)) {
return $phone;
} else {
return false;
}
}
//检查字符
function char($char,$length='1,6',$charlist='')
{
if (empty($charlist)) {
$charlist='A-Za-z0-9_';
}
if(preg_match('#^['.$charlist.']{'.$length.'}$#',$char)){
return $char;
}else{
return false;
}
}
//检查验证码
function yzm($yzm)
{
if (empty($_SESSION['code']) || empty($yzm)) {
return false;
}
if ($_SESSION['code'] == substr(md5(strtolower($yzm)), 8, 28)) {
return true;
} else {
return false;
}
}
<?php
// 计算身份证校验码,根据国家标准GB 11643-1999
function idcard_verify_number($idcard_base)
{
if (strlen($idcard_base) != 17) {
return false;
}
//加权因子
$factor = array(
7,
9,
10,
5,
8,
4,
2,
1,
6,
3,
7,
9,
10,
5,
8,
4,
2
);
//校验码对应值
$verify_number_list = array(
'1',
'0',
'X',
'9',
'8',
'7',
'6',
'5',
'4',
'3',
'2'
);
$checksum = 0;
for ($i = 0; $i < strlen($idcard_base); $i++) {
$checksum += substr($idcard_base, $i, 1) * $factor[$i];
}
$mod = $checksum % 11;
$verify_number = $verify_number_list[$mod];
return $verify_number;
}
// 将15位身份证升级到18位
function idcard_15to18($idcard)
{
if (strlen($idcard) != 15) {
return false;
} else {
// 如果身份证顺序码是996 997 998 999,这些是为百岁以上老人的特殊编码
if (array_search(substr($idcard, 12, 3), array(
'996',
'997',
'998',
'999'
)) !== false) {
$idcard = substr($idcard, 0, 6) . '18' . substr($idcard, 6, 9);
} else {
$idcard = substr($idcard, 0, 6) . '19' . substr($idcard, 6, 9);
}
}
$idcard = $idcard . idcard_verify_number($idcard);
return $idcard;
}
// 18位身份证校验码有效性检查
function idcard_checksum18($idcard)
{
if (strlen($idcard) != 18) {
return false;
}
$idcard_base = substr($idcard, 0, 17);
if (idcard_verify_number($idcard_base) != strtoupper(substr($idcard, 17, 1))) {
return false;
} else {
return true;
}
}
?>
<?php
require_once('../lib/check/fun.php');
//安全协议判断
var_dump(ssl());
// 代理访问检测
var_dump(proxy());
//机器人检测
var_dump(robot());
//浏览器检查
var_dump(browser('chrome'));
// 判断Ajax方式提交
var_dump(ajax());
//url
//参数url,是否预先过滤url非法字符
var_dump(url('http://127.0.0.1/lizhi/check.php',true));
//ip
//参数 待检ip
var_dump(ip('11.444.55.66'));
//email
//参数email,是否预先过滤email非法字符
var_dump(email('24556@qq.com',true));
//身份证检查
var_dump(card('350128198506275555'));
//银行卡号检查
//位数16-20
var_dump(bank_card('6258081480887777'));
//手机号码检查
var_dump(shouji('13052561263'));
//检查字符串
//参数 待检字符串 匹配长度 匹配字符集
var_dump(char('ee1301263','1,20'));
//检查验证码
yzm('sss');
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号