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];\\返回数组
}