PHP經常使用函數

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];\\返回數組
}
 php

相關文章
相關標籤/搜索