使用:
$a=rand(最小值[整數],最大值[整數])
說明:
rand函式所傳回的資料型態為整數,會依據設計者傳入的最大值與最小值,傳回隨機亂數,可以同時不指定最大值與最小值,這個時候並不會出錯,此時會使用預設最大值getrandmax()=32767與預設最小值0做為基本判斷數值,也就是說rand()等於rand(0,32767),會傳回0到32767之間的數值。
其他重點:
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()這個函式,因為這個函式如果不指定最大值與最小值,它的預設範圍會是在0與2147483647之間。
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:30到2008-10-1 13:45:30的時差75分鐘
總結:php時間計算的的基礎都是秒鐘,把握這個規律後可以將時差換算成分鐘,小時等均可,讓時間計算變得很簡單、輕鬆。
- /**
- * 取得真實IP位址,包含Proxy 後面的真實IP位址
- *
- * @return unknown
- */
- function get_real_ip(){
- $ip=false;
- if(!emptyempty($_SERVER["HTTP_CLIENT_IP"])){
- $ip=$_SERVER["HTTP_CLIENT_IP"];
- }
- if (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
- $ips=explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
- if ($ip) { array_unshift($ips, $ip); $ip=FALSE; }
- for ($i=0; $i < count($ips); $i++) {
- if (!eregi ("^(10|172.16|192.168).", $ips[$i])) {
- $ip=$ips[$i];
- break;
- }
- }
- }
- return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
- }
- 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