1.获取IP
function ipAddress(){
$ipAddress = $_SERVER['REMOTE_ADDR'];
return $ipAddress;
}
echo ipAddress();
哇塞,小小ip大学问,还有代理问题,真的小学问,大知识,那就待续。。。。
2.时间的增加
3.检查日期是否合法日期
//时间合法判断,当$type=1时,$date格式为Y-M-D,,当$type=2时,$date格式M-D-Y
function proveDate($date, $type=1){
$date = explode("-", $date);
if(is_numeric($date[0]) && is_numeric($date[1]) && is_numeric($date[2])){
if($type==1){
return checkdate($date[1], $date[2], $date[0]);
}
elseif($type==2){
return checkdate($date[0], $date[1], $date[2]);
}
else{
return false;
}
}
}
4.时间比较函数,返回两个日期相差几秒、几分钟、几小时或几天
5.PHP重定向
function redirect($url='#'){
return header("location: $url");
//echo "<script>location.href='$url';</script>";
exit;
}
$url = 'http://baidu.com';
redirect($url);
6.获取访问者浏览器
$string = "HTTP_USER_AGENT";
echo getenv($string);
//echo $_SERVER[$string];
7.获取访问者操作系统
8.文件格式类
9.php生成excel文档
10.时间比较问题
11.提取页面和浏览器提交的变量,作用相当于使PHP.INI开了全局变量
12.读取文件函数
13.写入文件函数
14.页面快速转向
15.产生随机字符串函数
//随机字符串生成,$strLen为字符串长度,最大长度为62,默认长度为10,
function randStr($strLen=10){
$randStr="";
$str='ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
for($i=0; $i<strlen($str); $i++){
$strArray[$i]=substr($str, $x=mt_rand(0,61), 1);//如果$x等于$i的话,最后生成的随机字符串都是先后顺序出现
} //如0agho,排在前面的字符永远出现在前面。所以加了个mt_rand(0,35)随机数,数组中的值就是乱的。
$rand_keys = array_rand($strArray, $strLen);
for($i=0; $i<$strLen; $i++){
$randStr = $randStr.$strArray[$rand_keys[$i]];
}
return $randStr;
}
16.截取一定长度的字符串(该函数对GB2312使用有效)
17.取得客户端IP地址
18.判断邮箱地址
//邮件格式的判断,原则:必须包含@,必须.com/.cn/.com.cn结尾,字符必须大小写字母及数字组成
//符合格式返回数字"1",不符合返回数字"0"。
function checkMail($mail=""){
return preg_match("/\b[a-zA-Z0-9]+@\b[a-zA-Z]+\.[com,cn,com\.cn]+$/",$mail);
}
19.分页(两个函数配合使用)
20.获取新插入数据的ID
mysql_insert_id()
21.获得当前的脚本网址
$_SERVER["SCRIPT_NAME"]
22.把全角数字转为半角数字
23.转义HTML标记
//字符转义
function htmlEncode($string=""){
If($string){
$string = str_replace(">", ">", $string);
$string = str_replace("<", "<", $string);
$string = str_replace(CHR(32), " ", $string);
$string = str_replace(CHR(34), """, $string);
$string = str_replace(CHR(39), "'", $string);
$string = str_replace(CHR(9), " ", $string);
$string = str_replace(" ", " ", $string);
$string = str_replace(CHR(13), "", $string);
$string = str_replace(CHR(10) & CHR(10), "</p><p> ", $string);
$string = str_replace(CHR(10), "<br /> ", $string);
return $string;
}
}
//字符转回函数
function htmlDncode($string){
If($string){
$string = str_replace(">",">", $string);
$string = str_replace("<", "<", $string);
$string = str_replace(" ", CHR(32), $string);
$string = str_replace(" ", " ", $string);
$string = str_replace(""", CHR(34), $string);
$string = str_replace("'", CHR(39), $string);
$string = str_replace("", CHR(13), $string);
$string = str_replace("</p><p> ",CHR(10) & CHR(10), $string);
$string = str_replace("<br /> ",CHR(10), $string);
return $string;
}
}
24.相对路径转化成绝对路径
26.取得所有链接
27.HTML表格的每行转为CSV格式数组
28.将HTML表格的每行每列转为数组,采集表格数据
29.将$_GET[]得到的参数进行数字判断
$id=$_GET['id'];//考虑到get得到的都是字符型参数,所以对数字进行这一转换,只判断int型,不考虑其他类型
//var_dump(intCheck($id));//这里是对参数id进行输出查看,调试时候可以用到
function intCheck($checkNum){
$strlen = strlen($checkNum)-1;
$numArray = str_split($checkNum);
for($i=0; $i<=$strlen; $i++){
$numArray[$i]=ord($numArray[$i]);
if(($numArray[$i]<48 || $numArray[$i]>57) && $numArray[$i] != 46){
$j=0;
break;
}
else{
$j=1;
}
}
if($j){
return 1;//返回1,表示为数字
}
else{
return 0;//返回0,表示不为数字
}
}
另一种数字,数字字符串判断,优点速度快,缺点,过滤掉了0,003类似这样的数字
这一函数可以用在sql语句中判断ID的合法性,因为一般ID都是自动编号,一定不会出现003类似这样的编号,只是0也被过滤掉了
function isint($str){
$startlen = strlen($str);\\获取变量长度
$str=ltrim((int)$str, '0');\\过滤掉左边的0
$endlen = strlen($str);\\获取过滤后的字符长度
if($str && $startlen == $endlen){\\如果这里两个字符串长度不相等,那么就不是字符串
return true;//返回true,表示为数字
}
else{
return false;//返回flase,表示为数字
}
}
30.产生不重复的随机数
$randArray = array();//定义数组,用来存储产生的随机数
$times = 6;//随机产生几个随机数
$start = 1;//最小的随机数
$end = 33;//最大的随机数
for($i=0; $i<$times; $i++){//开始循环
$rand = getRand($start,$end);//用函数getRand产生一个指定范围内的随机数
if(!checkSame($rand, $randArray)){//用函数checkSame检查产生的随机数是否在数组中,如果重复
$i=$i-1;//那么循环往回退一次,再执行一次循环
}
else{//否则将产生的随机数加入到数组中
$randArray[$i] = $rand;//将随机数存入数组中
}
}
echo implode(",",$randArray);//将数组转换成字符串输出,个人喜好,如何输出自己看着办
function getRand($start, $end){//随机数产生函数
return rand($start, $end);
}
function checkSame($num, $array){//检查随机数重复函数,如果重复,返回false,否则返回true
$j=0;
for($i=0; $i<count($array); $i++){
if($num == $array[$i])
return false;
}
return true;
}
方法二
$array = array();
$i=0;
$size = 6;//需要产生的随机数的个数
$start = 1;
$end = 33;
while($i<$size){
$aa = rand($start,$end);
if(!in_array($aa,$array)){
$array[] = $aa;
$i++;
}
}
print_r(implode(",",$array));
30.从url中获取域名
(函数处理中有两个方法,一个是用正则加字符串函数处理获取域名,另一个是只用正则获取域名)
$url = "http://www.baidu.com";
echo domain($url)."<br />";\\输出baidu.com
function domain($url){
preg_match("/(http:\/\/)?([^\/]+)/i", $url, $aa);
$domain = str_replace("www.", "", $aa[2]);\\字符串函数处理域名
return $domain;\\返回域名变量
//preg_match("/[^www.]+.*/i", $aa[2], $domain);\\用正则处理字符串,获取域名
//return $domain[0];\\返回数组
}