php检查函数
来源:互联网 发布:centos 高可用 编辑:程序博客网 时间:2024/05/15 13:49
<?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;
}
}
0 0
- php 检查电子邮件函数
- php检查函数
- php 检查电子邮件的函数
- PHP 检查字符串函数ctype
- PHP文件或目录权限检查函数
- eval 函数 检查并执行php代码
- PHP 中检查库或函数是否可用的方法
- php获取/检查当前类名函数名的方法
- php检查函数必传参数是否存在
- 《PHP基础知识总结》PHP检查库或函数是否可用的方法
- PHP - Manual手册 - 函数参考 - Filesystem 文件系统函数 - file_exists检查文件或目录是否存在
- PHP 项目检查规范:
- php检查文件类型
- PHP检查语法错误技巧
- vim php语法检查
- PHP验证和检查
- php反射 检查类
- 检查php的语法错误
- Lua 在Lua中调用C函数
- 【高斯消元】[CTSC2001 D2]GPA 排名系统
- curl(1) 发送数据
- Java那些容易混淆的东东
- LeetCode_OJ【47】Permutations II
- php检查函数
- undefined reference to
- 地下迷宫探索
- linux查看进程启动时间、运行多长时间等指定信息
- Swift 基本知识点之八 —类与结构体
- 关于URL编码
- 【Android】5分钟发布Android Library项目到JCenter
- junit参数化测试
- ERROR ITMS-90158: