close

 使用:
$a=rand(
最小值[整數],最大值[整數])

說明:
rand
函式所傳回的資料型態為整數,會依據設計者傳入的最大值與最小值,傳回隨機亂數,可以同時不指定最大值與最小值,這個時候並不會出錯,此時會使用預設最大值getrandmax()=32767與預設最小值0做為基本判斷數值,也就是說rand()等於rand(0,32767),會傳回032767之間的數值。

其他重點:
1. rand
函式可以接受的最大傳入值為整數的最大值:2147483647、最小值:-2147483648(過大的數值會產生無法預知的錯誤[溢值])
2. rand
函式的最大值與最小值如果輸入顛倒,程式仍可正確輸出。(但建議照規矩來,養成寫程式的好習慣)
3. rand
函式不可傳入文字字串、空字串,但可以傳入數字字串。(但建議照規矩來,養成寫程式的好習慣)
4.
傳入值如果輸入小數(浮點數),會被直接轉為整數運算,也就是小數部分會直接去除。

以下兩種情況會產生警告訊息:
1.
只有指定最大值或最小值其中之一時,如:rand(100)
2.
傳入值為文字字串、空字串時。

以下這種情況會產生錯誤訊息:
1.
參數填寫不完全時,如:rand(100,)rand(,100)

範例:
echo rand(); //正常輸出
echo rand(1,20);
 //正常輸出
echo rand(100,80);
 //正常輸出,輸出80-100之間的整數
echo rand(-1,-20);
 //正常輸出
echo rand(-20,-2);
 //正常輸出
echo rand(100.1,111.9);
 //正常輸出,輸出100-111之間的整數
echo rand("1","20");
 //正常輸出
echo rand(-888,999);
 //正常輸出
echo rand("20","-20");
 //正常輸出
echo rand(9999999990,9999999999); //正常輸出,但輸出結果有誤
echo rand(0,9999999999999);
 //正常輸出,但輸出結果有誤
echo rand(a,z); //輸出警告訊息(1),且不傳回值
echo rand(1,z);
 //輸出警告訊息(2),且不傳回值
echo rand(10,"");
 //輸出警告訊息(2),且不傳回值
echo rand(10);
 //輸出警告訊息(3),且不傳回值
echo rand(10,); //輸出錯誤訊息(4)
echo rand(,10);
 //輸出錯誤訊息(4)

錯誤與警告訊息:
1. Warning: rand() expects parameter 1 to be long, string given
2. Warning: rand() expects parameter 2 to be long, string given
3. Warning: rand() expects exactly 2 parameters, 1 given

4. Parse error: syntax error, unexpected ')'

請注意!警告訊息與錯誤訊息的不同之處在於,就算出現警告網頁程式也會繼續執行到結束,但如果出現錯誤訊則網頁會直接終止執行


建議:
使用rand函式取得隨機亂數值時,建議手動設定最大值與最小值rand(x,y),而不建議使用rand()這樣的方式取得亂數,如果要隨機取得大範圍亂數但不指定最大值與最小值,我會建議使用mt_rand()這個函式,因為這個函式如果不指定最大值與最小值,它的預設範圍會是在02147483647之間。

http://www.pczone.idv.tw/phpBB3/viewtopic.php?f=3&t=17


 

若我們要計算兩個時間的差值,可以用以下方法:
$time1='2008-10-1 12:30:30';
$time2='2008-10-1 13:45:30';
$diff=(strtotime($time2)-strtotime($time1))/60;
echo $time1.'到'.$time2.'的時差'.$diff.'分鐘';
執行結果:2008-10-1 12:30:302008-10-1 13:45:30的時差75分鐘

總結:php時間計算的的基礎都是秒鐘,把握這個規律後可以將時差換算成分鐘,小時等均可,讓時間計算變得很簡單、輕鬆。


 

  1. /**  
  2. 取得真實IP位址,包含Proxy 後面的真實IP位址  
  3. *  
  4. * @return unknown  
  5. */   
  6. function get_real_ip(){   
  7.   
  8. $ip=false;   
  9.   
  10. if(!emptyempty($_SERVER["HTTP_CLIENT_IP"])){   
  11. $ip=$_SERVER["HTTP_CLIENT_IP"];   
  12. }   
  13.   
  14. if (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR'])) {   
  15. $ips=explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);   
  16. if ($ip) { array_unshift($ips, $ip); $ip=FALSE; }   
  17. for ($i=0; $i < count($ips); $i++) {   
  18. if (!eregi ("^(10|172.16|192.168).", $ips[$i])) {   
  19. $ip=$ips[$i];   
  20. break;   
  21. }   
  22. }   
  23. }   
  24.   
  25. return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);   
  26. }   
  27. echo get_real_ip();   

http://blog.phptw.idv.tw/read-107.html


http://blog.wu-boy.com/2009/01/05/701/

http://big5.chinaz.com:88/book.chinaz.com/MySQL/3312.shtml

http://localhost/meryso/bigsize/guestbook.php

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 avrilnote 的頭像
    avrilnote

    Avril Note

    avrilnote 發表在 痞客邦 留言(0) 人氣()