这篇文章介绍的内容是关于php的常用函数,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
<?php
function
StrHidtel(
$Str
,
$Percen
= 30,
$Count
= 1,
$ToStr
=
"0"
)
{
$StrLen
= mb_strlen(
$Str
,
"UTF-8"
);
$MaxLen
=
ceil
(
$StrLen
*
$Percen
/ 100);
$StartLen
=
$StrLen
-
$MaxLen
;
$Blurry
=
str_repeat
(
$ToStr
,
$MaxLen
);
$ShifText
= mb_substr(
$Str
,
$StartLen
/ 2,
$MaxLen
,
"UTF-8"
);
return
str_replace
(
$ShifText
,
$Blurry
,
$Str
,
$Count
);
}
function
SaveLog (
$Type
,
$Text
)
{
date_default_timezone_set(
"PRC"
);
$day
=
date
(
"Y-m-d"
,time());
$Time
=
"["
.
date
(
"Y-m-d H:i:s"
,time()).
"]"
;
$hade
=
"["
.
$_SERVER
['REQUEST_URI'].
"]"
;
$LogPath
= './';
$FilePath
=
$LogPath
.
$Type
.
$day
.
".log"
;
$f
=
fopen
(
$FilePath
,
"ab+"
);
fwrite(
$f
,
"$Time-$hade-$Text"
.
"\r\n"
);
fclose(
$f
);}
function
getIP()
{
if
(
getenv
('HTTP_CLIENT_IP'))
{
$ip
=
getenv
('HTTP_CLIENT_IP');
}
elseif
(
getenv
('HTTP_X_FORWARDED_FOR'))
{
$ip
=
getenv
('HTTP_X_FORWARDED_FOR');
}
elseif
(
getenv
('HTTP_X_FORWARDED'))
{
$ip
=
getenv
('HTTP_X_FORWARDED');
}
elseif
(
getenv
('HTTP_FORWARDED_FOR'))
{
$ip
=
getenv
('HTTP_FORWARDED_FOR');
}
elseif
(
getenv
('HTTP_FORWARDED'))
{
$ip
=
getenv
('HTTP_FORWARDED');
}
else
{
$ip
=
$_SERVER
['REMOTE_ADDR'];
}
preg_match(
"/^(\d|\.)+$/si"
,
$ip
,
$isip
);
if
(
$isip
== NULL)
{
F404(
"系统无法验证您的身份:$ip"
);
exit
;
}
return
$ip
;
}
function
IntIp()
{
$IntIP
=
ip2long
(getIP());
if
(
$IntIP
) {
return
$IntIP
;
}
else
{
return
false;
}}
function
OrderGenerate(
$UserID
,
$Type
,
$ID
=
"0"
)
{
$Time
= time();
$IP
=
str_pad
(
abs
(IntIp()), 10,
"0"
);
$RandSub
= RandomStr(3, 1);
$UserText
=
str_pad
(
$UserID
, 10,
"0"
, STR_PAD_LEFT);
$OrderID
=
date
(
"Ymd"
,
$Time
);
$OrderID
.=
substr
(
$ID
, -1);
$OrderID
.=
str_pad
(
$Type
, 5,
"0"
);
$OrderID
.=
$RandSub
;
$OrderID
.= mb_substr(
$IP
, 3, 2);
$OrderID
.= mb_substr(
$Time
, 4, 5);
$OrderID
.= mb_substr(
$IP
, 7, 3);
$OrderID
.= mb_substr(
$UserText
, 6, 4);
return
$OrderID
;
}
function
IsString (
$IsString
,
$KeyName
,
$Exclude
=
array
())
{
if
((
is_array
(
$IsString
) &&
is_array
(
$KeyName
) &&
count
(
$IsString
) ==
count
(
$KeyName
))
|| (
count
(
$IsString
) == (
count
(
$KeyName
) +
count
(
$Exclude
))))
{
foreach
(
$KeyName
as
$List
=>
$As
)
{
if
(!(isset(
$IsString
[
$As
]) && (
is_string
(
$IsString
[
$As
]) ||
is_int
(
$IsString
[
$As
]))))
{
if
(!in_array(
$As
,
$Exclude
))
{
return
false;
}
}
}
return
true;
}
else
{
return
false;
}
}
$date
=[
'a'
=>123,
'b'
=>456,
'c'
=>789,
'd'
=>
'<script>alert(111111)</script>'
];
function
IsUtf8(
$Str
)
{
$encode
= mb_detect_encoding(
$Str
,
array
(
"ASCII"
,
'UTF-8'
,
"GB2312"
,
"GBK"
,
"BIG5"
));
if
(
$encode
!=
'UTF-8'
) {
$Str
= iconv(
$encode
,
"UTF-8"
,
$Str
);; }
return
$Str
;}
function
is_idcard(
$id
){
$id
=
strtoupper
(
$id
);
$regx
=
"/(^\d{15}$)|(^\d{17}([0-9]|X)$)/"
;
$arr_split
=
array
();
if
(!preg_match(
$regx
,
$id
)) {
return
FALSE; }
if
(15==
strlen
(
$id
))
@preg_match(
$regx
,
$id
,
$arr_split
);
$dtm_birth
=
"19"
.
$arr_split
[2] .
'/'
.
$arr_split
[3].
'/'
.
$arr_split
[4];
if
(!
strtotime
(
$dtm_birth
)) {
return
FALSE; }
else
{
return
TRUE; } }
else
{
$regx
=
"/^(\d{6})+(\d{4})+(\d{2})+(\d{2})+(\d{3})([0-9]|X)$/"
; @preg_match(
$regx
,
$id
,
$arr_split
);
$dtm_birth
=
$arr_split
[2] .
'/'
.
$arr_split
[3].
'/'
.
$arr_split
[4];
if
(!
strtotime
(
$dtm_birth
))
$arr_int
=
array
(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
$arr_ch
=
array
(
'1'
,
'0'
,
'X'
,
'9'
,
'8'
,
'7'
,
'6'
,
'5'
,
'4'
,
'3'
,
'2'
);
$sign
= 0;
for
(
$i
= 0;
$i
< 17;
$i
++ ) {
$b
= (int)
$id
{
$i
};
$w
=
$arr_int
[
$i
];
$sign
+=
$b
*
$w
; }
$n
=
$sign
% 11;
$val_num
=
$arr_ch
[
$n
];
if
(
$val_num
!=
substr
(
$id
,17, 1)) {
return
FALSE; }
else
{
return
TRUE; } } }}