php參數列表
『壹』 誰指導php的getenv函數的參數列表
$aaaaa = getenv('REMOTE_ADDR');
『貳』 如何獲取PHP命令行參數
如何獲取PHP命令行參數使用 PHP 開發的同學多少都會接觸過 CLI 命令行。經常會有一些定時任務或者一些腳本直接使用命令行處理會更加的方便,有些時候我們會需要像網頁的 GET 、 POST 一樣為這些命令行腳本提供參數。比如在針對某些日期做統計的腳本,就需要傳遞一個日期給它,這樣我們就統計指定日期的一些數據。這類需求應該非常常見,那麼,我們都是如何來接收這些命令行的參數的呢?今天,就來介紹一下這方面的內容。
$argv 獲得所有空格分隔的參數列表這個變數估計是大家用得比較多的一個接參變數了。它是 PHP 為我們准備好的一個固定變數,目的就是獲取傳遞給腳本的參數數組。
print_r($argv); // php 如何獲取PHP命令行參數.php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd // Array // ( // [0] => 如何獲取PHP命令行參數.php // [1] => --a=1 // [2] => -b=2 // [3] => -c=3 // [4] => -d=4 // [5] => --e=5 // [6] => ccc // [7] => ddd // )這個數組是以參數間隔的空格進行分隔的。第1個元素是當前運行的腳本文件名,也就是說,不管有沒有參數,這個變數一定會有一個 $argv[0] 表示的是當前的腳本文件名。
在日常的開發需求中,其實使用這個變數就已經夠用了。但是這明顯不會是我們今天的主題,大家注意到上面的代碼中我們有很多參數是 -x=xxx 的形式,這種形式的參數是不是和 Linux 的命令選項非常像,沒錯,這就是我們今天要重點介紹的:從命令行參數列表中獲取選項。
getopt() 從命令行參數列表中獲取選項其實就是這樣一個簡單的函數,我們就可以像 Linux 的命令選項一樣獲取指定的命令值。而且不是像 $argv 按空格進行分隔,命令選項函數會將這些命令選項封裝成數組,組成以選項名為鍵,以等號後面的內容為值的數組,更加方便我們的使用。
// php 如何獲取PHP命令行參數.php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd print_r(getopt('a:b:c:d:e:f:')); // Array // ( // [b] => 2 // [c] => 3 // [d] => 4 // )是不是很神奇,而且非常直觀吧,我們直接就拿到了 b 、 c 、d 的內容並且是格式非常清晰的鍵值數組形式。有同學要問了,a 和 e 呢?還有後面的 ccc 、 ddd 呢?
首先要說明的是,ccc 和 ddd 不是標準的選項參數,也就是說,這個函數接收的內容是以 - 開頭的選項,所以 ccc 和 ddd 不會在這里輸出,並且需要注意的是,非選項參數會中斷選項參數的獲取,在 ccc 之後如果繼續添加 - 開頭的選項也是無法獲取到的,這個我們後面還會看到。而 -- 開頭的選項參數呢?我們直接看下面的長選項功能。
長選項 // php 如何獲取PHP命令行參數.php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd print_r(getopt('', ['a:','b:','c:','d:','e:','f:'])); // Array // ( // [a] => 1 // [e] => 5 // )沒錯,getopt() 函數的第二個參數就是定義這種 -- 開頭的長選項的,而且需要注意的是,第一個參數是字元串類型,第二個長選項參數是數組類型的。那麼我們把它們結合起來,就當然可以獲取到全部的參數信息啦!
// php 如何獲取PHP命令行參數.php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd print_r(getopt('a:b:c:d:e:f:', ['a:','b:','c:','d:','e:','f:'])); // Array // ( // [a] => 1 // [b] => 2 // [c] => 3 // [d] => 4 // [e] => 5 // )OK,參數選項獲取沒問題了吧,細心的同學肯定又發現了一個問題,這個 getopt() 函數的參數中定義的選項名稱後面為啥都要加個冒號?這就涉及到我們的冒號規則了,請直接往下看。
冒號規則getopt() 的前兩個參數都支持一套關於選項獲取的規則:
單獨的字元(不接受值) 後面跟隨冒號的字元(此選項需要值) 後面跟隨兩個冒號的字元(此選項的值可選)我們還是直接通過代碼來看一下。
// 一 // php 如何獲取PHP命令行參數.php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd print_r(getopt('abcdef')); // Array // ( // [b] => // [c] => // [d] => // ) // 二 // php 如何獲取PHP命令行參數.php -f print_r(getopt('f::')); // Array // ( // [f] => // ) print_r(getopt('f:')); // Array // ( // ) // 三 // php 如何獲取PHP命令行參數.php -f 22 print_r(getopt('f::')); // Array // ( // [f] => // ) print_r(getopt('f:')); // Array // ( // [f] => 22 // ) // 四 // php 如何獲取PHP命令行參數.php -f=22 print_r(getopt('f::')); // Array // ( // [f] => 22 // ) print_r(getopt('f:')); // Array // ( // [f] => 22 // )這一段比較長,我們一塊一塊來看。首先是不帶冒號的 abcdef 寫法,返回的數組中都包含鍵,但沒有值,對應上面的規則就是不接受這些參數選項的值,你傳了這些參數選項也是只有鍵名而內容是空的。
第二段是定義了一個參數,但是不給值,這時,雙冒號 :: 會有鍵名,而單冒號 : 則什麼都沒有。
第三段是空格形式的選項值,雙冒號 :: 有鍵名但沒有值,單冒號 : 鍵值正常。
第四段是等號 = 形式的選項值,單雙冒號都正常接收到鍵值。
選項參數中斷上文中我們提到過參數中斷的問題,就是在選項參數之後如果有一個非選項參數的參數出現,getopt() 就無法再獲取到這個非選項參數後面的所有內容了。
// php 如何獲取PHP命令行參數.php -f=22 aa -b=33 // 選項的解析會終止於找到的第一個非選項,之後的任何東西都會被丟棄。 // Array // ( // [f] => 22 // )通過這個測試可以清晰的看出後面的 b 選項無法獲取。這時,如果我們想知道選項參數在什麼地方或者因為哪個參數而中斷的話,就可以使用 getopt() 函數的第三個參數了。
// php 如何獲取PHP命令行參數.php -f=22 aa -b=33 $optind = null; getopt('f:b:', [], $optind); echo $optind, PHP_EOL; // 返回中斷位置的索引值,2 echo $argv[$optind], PHP_EOL; // 等同於 $argv 的索引順序,aa注釋已經寫得很清晰了,第三個參數會回調一個參數選項中斷位置的索引,並且這個索引是和 $argv 的索引順序位置一致的。
總結說實話,在沒看文檔前真的只知道有一個 $argv 變數可以用來獲取命令行腳本的參數,通過這次學習才發現原來還有一個這么強大的選項參數函數。學習的過程非常簡單,如何運用到真實的項目中才是關鍵所在,加油學習,努力實踐吧!
測試代碼:
https://github.com/zhangyue0503/dev-blog/blob/master/php/202006/source/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96PHP%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8F%82%E6%95%B0.php
『叄』 PHP函數參數中在參數列表中定義參數時採用傳值方式還是傳地址方式有什麼區別,通俗解釋一下
就好比,家庭住址和房子的關系。傳值是傳房子(即地址上的建築),傳地址是傳家庭住址(建築所在的位置)。
『肆』 php如何訪問本地提交參數
通過sql共同操作同一個資料庫。
PHP支持兩種參數傳遞方式,分別是按值傳遞和按引用傳遞。另外,PHP還支持默認參數和可變長度參數列表。
在調用函數時需要向函數傳遞參數,被傳入的參數稱作實參,而函數定義的參數為形參。當傳遞的參數不是函數指定的參數類型時,PHP會嘗試將所傳參數轉換成指定參數類型。
『伍』 php中自定義函數正確的語句是
像數學中的函數一樣,y=f(x)是函數基本的表達形式,x可看做是參數,y可看做是返回值,即函數定義就是一個被命名的、獨立的代碼段,它執行特定的任務,並可能給調用它的程序返回一個值。
自定義函數 函數的聲明
在編寫程序的過程中,我們會經常碰到某些功能模塊在PHP中沒有提供系統函數,這樣就需要我們自己定義函數,即自定義函數,自定義函數的規則如下:
每個函數的第一行都是函數頭,由聲明函數的關鍵字function、函數名和參數列表三部分組成。
每個自定義函數都必須使用function關鍵字聲明。
函數名可以代表整個函數,可以將函數命名為任何名稱,只要遵循變數名的命名規則即可。但函數名稱必須唯一,且不能與系統函數重名。
聲明函數時函數名後面的花括弧也是必須有的,在花括弧中表明了一組可以接受的參數列表,參數就是聲明的變數,然後在調用函數時傳遞給它值。參數列表可以沒有,也可以有—個或多個參數,多個參數使用逗號分隔。
函數體位於函數頭後面,用花括弧括起來。函數被調用後,執行到retun語句或最外面的花括弧後結束,返回到調用的程序。
使用關鍵字return可以從函數中返回一個值,然後返回到調用程序處繼續執行。
- Demo
通過函數名稱去調用函數。
如果函數有參數列表,還可以通過函數名後面的圓括弧傳入對應的值給參數,在函數體中使用參數來改變函數內部代碼的執行行為。
如果函數有返回值,當函數執行完畢時就會將return後面的值返回到調用函數的位置處。
- Demo
return語句可以向函數調用者返回函數體中任意執行結果值。
在函數體中如果執行了return語句,它後面的語句就不會被執行。
- Demo
<?php
/* 將使用雙層for循環輸出表格的代碼聲明為函數,函數名為table */
functiontable(){
echo"<table align='center' border='1' width='600'>";
for(out=0;out<10;out++){
bgcolor=out%2==0?"red":"blue";//各行換背景色
echo"<tr bgcolor=".bgcolor.">";
for(in=0;in<10;in++){
echo"<td>".(out*10+in)."</td>";
}
echo"</tr>";
}
echo"</table>";
}
?>
函數的調用
不管是自定義的函數還是系統函數,如果函數不被調用,就不會執行。函數被調用後開始執行函數體中的代碼,執行完畢返回到調用的位置繼續向下執行。調用規則如下:
<?php
/* 將使用雙層for循環輸出表格的代碼聲明為函數,函數名為table */
functiontable(){
echo"<table align='center' border='1' width='600'>";
for(out=0;out<10;out++){
bgcolor=out%2==0?"red":"blue";//各行換背景色
echo"<tr bgcolor=".bgcolor.">";
for(in=0;in<10;in++){
echo"<td>".(out*10+in)."</td>";
}
echo"</tr>";
}
echo"</table>";
}
?>
<?php
table();
?>
函數的參數
參數列表是由零個、一個或多個參數組成的。每個參數是一個表達式,用逗號分隔。對於有參函數,在PHP腳本程序中和被調用函數之間有數據傳遞關系。定義函數時函數名後面括弧內的表達式稱為形式參數(簡稱「形參」),被調用函數名後面括弧中的表達式稱為實際參數(簡稱「實參」),實參和形參需要接順序對應傳遞數據。如果函數沒有參數列表,函數執行的任務就是固定的,用戶在調用函數時不能改變函數內部的一些執行行為。
Demo
<?php
/**
自定義函數table()時,聲明三個參數,參數之間使用逗號分隔
@paramstringtableName 需要一個字元串類型的表名
@paramintrows 需要一個整型數值設置表格的行數
@paramintcols 需要另一個整型值設置表格的列數
*/
functiontable(tableName,rows,cols){
echo"<table align='center' border='1' width='600'>";
echo"<caption><h1>tableName</h1></caption>";
for(out=0;out<rows;out++){//使用第二個參數rows指定錶行數
bgcolor=out%2==0?"red":"blue";
echo"<tr bgcolor=".bgcolor.">";
for(in=0;in<cols;in++){//使用第三個參數cols指定表列數
echo"<td>".(out*cols+in)."</td>";
}
echo"</tr>";
}
echo"</table>";
}
?>
<?php
table("千度的表格",10,10);
?>
函數的返回值
函數的返回值是函數執行的結果,調用函數的腳本程序不能直接使用函數體裡面的信息,但可以通過關鍵字return向調用者傳遞數據。return語句注意點如下:
<?php
/**
自定義函數table()時,聲明三個參數,參數之間使用逗號分隔
@paramstringtableName 需要一個字元串類型的表名
@paramintrows 需要一個整型數值設置表格的行數
@paramintcols 需要另一個整型值設置表格的列數
*/
functiontable(tableName,rows,cols){
returnStr="這是返回的字元串";
echo"<table align='center' border='1' width='600'>";
echo"<caption><h1>tableName</h1></caption>";
for(out=0;out<rows;out++){//使用第二個參數rows指定錶行數
bgcolor=out%2==0?"red":"blue";
echo"<tr bgcolor=".bgcolor.">";
for(in=0;in<cols;in++){//使用第三個參數cols指定表列數
echo"<td>".(out*cols+in)."</td>";
}
echo"</tr>";
}
echo"</table>";
returnreturnStr;
}
?>
<?php
echotable("千度的表格",10,10);
?>
『陸』 PHP超級全局變數數組的列表
php超級全局變數列表
$_GET[] 獲得以GET方法提交的變數數組
$_POST[] 獲得以POST方法提交的變數數組
$_COOKIE[] 獲取和設置當前網站的Cookie標識
$_SESSION[] 取得當前用戶訪問的唯一標識,以數組形式體現,如sessionid以及自定義session數據
$_ENV[] 當前php環境變數數組
$_SERVER[] 當前php伺服器變數數組
$_FILES[] 上傳文件時提交到當前腳本的參數值,以數組形式體現
$_REQUEST[] 包含當前腳本提交的全部請求,$_GET、$_POST、$_COOKIE的所有動作
$GLOBALS[] 包含正在執行腳本所有超級全局變數的引用內容
『柒』 php中func_num_args(),func_get_arg(),func_get_args()的區別
PHP func_num_args與func_get_args
func_num_args函數功能– 返回傳遞到函數的參數數目,其語法如下 : int func_num_args (void )。
說明 : 返回傳遞到目前定義函數的參數數目。如果是從函數定義的外面來呼叫此函數,則func_get_arg( )將會產生警告。
func_num_args( )可以用來結合func_get_arg( )和func_get_args( )來允許使用者定義的函式接受variable-length參數列表。其中,func_get_arg( )從參數列表返回項目,其語法:int func_get_arg (int arg_num),傳回定義函數的參數列表的第arg_num個參數,其參數從0開始。且函數定義的外面來呼叫此函數會產生警告;並且當arg_num大於函數實際傳遞的參數數目時亦會產生警告並返回FALSE。
func_get_args()函數和func_get_arg()函數的區別在於,func_get_args()函數傳回一數組,數組的各個元素相當於是目前使用者定義函式的參數列的數目。
在我們構建PHP類的時候,靈活使用這三個函數,可以起到非常理想的效果,例如外面在創建PHP和MYSQL鏈接的類時,可以書寫如下代碼:
<?php
class mydb{
private $user;
private $pass;
private $host;
private $db;
public function __construct(){
$num_args=func_num_args();
if($num_args>0){
$args=func_get_args();
$this->host=$args[0];
$this->user=$args[1];
$this->pass=$args[2];
this->connect();
}
}
…………省略…………
?>
轉自:http://www.realure.cn/2008_27.html
====================================================
<?php
function foo() {
$numargs = func_num_args();
echo "Number of arguments: $numargs<br>/n";
if ($numargs >= 2) {
echo "Second argument is: " . func_get_arg (1) . "<br>/n";
}
$arg_list = func_get_args();
for ($i = 0; $i < $numargs; $i++) {
echo "Argument $i is: " . $arg_list[$i] . "<br>/n";
}
}
foo (1, 2, 3);
?>
func_get_args( )可以用來結合func_num_args( )和func_get_arg( )來允許使用者定義的函式接受variable-length參數列表。
注意 : 此函式是PHP4中新增的函式
『捌』 php函數的簡介
用戶自定義函數一個函數可由以下的語法來定義: <?phpfunction foo($arg_1, $arg_2, ..., $arg_n){ echo "Example function./n"; return $retval;}?>任何有效的 php 代碼都有可能出現在函數內部,甚至包括其它函數和類定義。
在 php 3 中,函數必須在被調用之前定義。而 php 4 則不再有這樣的條件。除非函數如以下兩個範例中有條件的定義。
如果一個函數以以下兩個範例的方式有條件的定義,其定義必須在調用之前完成。 <?phpfunction foo(){ function bar() { echo "I don't exist until foo() is called./n"; }}/* We can't call bar() yet since it doesn't exist. */foo();/* Now we can call bar(), foo()'s processesing has made it accessable. */bar();?>php 中的所有函數和類都具有全局域,可以在內部定義外部調用,反之亦然。
php 不支持函數重載,也不可能取消定義或者重定義已聲明的函數。
注:函數名是非大小寫敏感的,不過在調用函數的時候,通常使用其在定義時相同的形式。
php 3 雖然支持默認參數(更多信息請參照默認參數的值),但是卻不支持可變的參數個數。php 4 支持:見可變長度的參數列表和涉及到的相關函數func_num_args(),func_get_arg(),以及func_get_args()以獲取更多的信息。
在 php 中可以調用遞歸函數。但是要避免遞歸函數/方法調用超過 100-200 層,因為可能會破壞堆棧從而使當前腳本終止。 sys_getloadavt()可以獲得系統負載情況。該函數返回一個包含三個元素的數組,每個元素分別代表系統再過去的1、5和15分鍾內的平均負載。
與其讓伺服器因負載過高而宕掉,不如在系統負載很高時主動die掉一個腳本,sys_getloadavg()就是用來幫你實現這個功能的。不過很遺憾,該函數在windows下無效。 在發送頁面前先看看用戶的瀏覽器都能做些什麼是不是挺好?get_browser()能獲得用戶的瀏覽器類型,以及瀏覽器支持的功能,不過首先你需要一個php_browscap.ini文件,用來給函數做參考文件。
要注意,該函數對瀏覽器功能的判斷是基於該類瀏覽器的一般特性的。例如,如果用戶關閉了瀏覽器對JavaScript的支持,函數無法得知這一點。但是在判斷瀏覽器類型和OS平台方面,該函數還是很准確的。 glob()會讓你覺得用opendir(), readdir()和closedir()來尋找文件非常蠢。
『玖』 PHP的常用系統函數有哪些
PHP自帶了大量的系統函數,使用這些函數可以完成大部分的任務。常用的有數學運算函數和日期時間函數。
1.數學運算函數:
數學運算是程序中最常執行的功能之一,PHP提供了很多系統函數實現運算功能,無須安裝、編譯和配置便可以直接使用。下表列出了常用的數學函數:
函數名稱
功能描述
函數名稱
功能描述
abs()
絕對值
is_finite()
判斷是否為有限值
acos()
反餘弦
is_infinite()
判斷是否為無限值
acosh()
反雙曲餘弦
is_nan()
判斷是否為合法數值
asin()
反正弦
lcg_value()
組合線性同餘發生器
asinh()
反雙曲正弦
log10()
以10為底的對數
atan2()
兩個參數的反正切
log()
自然對數
atan()
反正切
max()
最大值
atanh()
反雙曲正切
min()
最小值
base_convert()
在任意進制之間轉換數字
mt_getrandmax()
顯示隨機數的最大可能值
bindec()
二進制轉換為十進制
mt_rand()
生成更好的隨機數
ceil()
進一法取整
mt_sran()
播下一個更好隨機數種子
cos()
餘弦
octdec()
八進制轉換為十進制
cosh()
雙曲餘弦
pi()
圓周率
decbin()
十進制轉換為二進制
pow()
指數表達式
dechex()
十進制轉換為十六進制
rad2deg()
將弧度轉換為相應的角度值
decoct()
十進制轉換為八進制
rand()
產生一個隨機數
deg2rad()
將角度轉換為弧度
round()
對浮點數四捨五入
exp()
計算e的指數
sin()
正弦
floor()
捨去法取整
sinh()
雙曲正弦
fmod()
返回除法的浮點數余數
sqrt()
平方根
getrandmax()
顯示隨機數最大的可能值
srand()
播下隨機數發生器種子
hexdec()
十六進制轉換為十進制
tan()
正切
hypot()
計算直角三角形的斜邊長度
tanh()
雙曲正切
注意:這些數學函數僅能處理計算機中integer和float范圍的值。
示例:產生隨機密碼的的函數
function CreatePassword($length=6) //生成密碼函數,默認6位
{
$dictionary=」」; //密碼字典
$maxChar=strlen($dictionary); //獲取字典長度
$password=」」;
for($i=0; $i<$length; $i++) //隨機生成每一位
{
$password.=$dictionary[rand(0, $maxChar)]; //產生隨機數,再從字典取字母
}
return $password;
}
2.日期和時間運算:
PHP提供了豐富的日期和時間方面運算的函數。
1)UNIX時間戳:
時間戳(Timestamp)是源於UNIX系統的時間表示方法,是指從1970年1月1日(00:00:00GMT)起到現在所經過的秒數,因此也稱為UNIX時間戳。
在PHP中使用時間戳的最簡單方式就是調用time()函數,time()函數可以根據當前時間返回一個時間戳的表示法。示例:
echo 「當前時間戳為:」.time();
2)日期函數:
PHP提供的一些常用的日期函數。
①date()函數:
date()函數用於格式化一個本地日期和時間。語法格式為:
string date(string $format [, int $timestamp])
返回將整數$timestamp按照$format給定格式而產生的字元串。其中,$timestamp參數是可選的,如果沒有給出時間戳,則使用本地當前時間,即time()。
下表列出了$format格式化字元串參數的說明:
值
說明
返回值
D
月份中的第幾天,有前導零的2位數字
01到31
D
星期中的第幾天,文本表示,3個字母
Mon到Sun
J
月份中的第幾天,沒有前導零
1到31
L
L的小寫字母,表示星期幾的完整文本格式
Sunday到Saturday
N
數字表示的星期中的第幾天
1(表示星期一)到7(表示星期天)
S
每月天數後面的英文後綴,2個字元
st,nd,rd或th。可以和j一起用
W
星期中的第幾天,數字表示
0(表示星期天)到6(表示星期六)
Z
年份中的第幾天
0到366
W
年份中的第幾周,每周從星期一開始
例如:42(當年的第42周)
F
月份,完整的文本格式,例如January
January到December
M
數字表示的月份,有前導零
01到12
M
3個字母縮寫表示的月份
Jan到Dec
N
數字表示的月份,沒有前導零
1到12
t
給定月份所應有的天數
28到31
L
是否為閏年
如果是閏年為1,否則為0
o
年份數字
例如:2016
Y
4位數字完整表示的年份
例如:2016
y
2位數字表示的年份
例如:16
a
小寫的上午和下午值
am或pm
A
大寫的上午和下午值
AM或PM
g
小時,12小時格式,沒有前導零
1到12
G
小時,24小時格式,沒有前導零
0到23
h
小時,12小時格式,有前導零
01到12
H
小時,24小時格式,有前導零
00到23
i
有前導零的分鍾數
00到59
s
秒數,有前導零
00到59
e
時區標識
例如:UTC,GMT,Atlantic/Azores
I
是否為夏令時
如果是夏令時為1,否則為0
O
與格林威治時間相差的小時數
例如:+0200
Z
時差偏移量的秒數
-43200到43200
c
ISO8601格式的日期
2011-05-12T15:19:21+00:00
r
RFC822格式的日期
例如:Thu, 21 Dec 2011 06:07:08 +0200
U
從January 1 1970 00:00:00開始至今的秒數
與time()函數相同
示例:
$today=date(「m/d/y」); //結果為:07/19/12
$today=date(「F j, Y, g:i a」); //結果為:July 19, 2012, 9:07 am
$today=date(「Y年n月j日」); //結果為:2012年7月19日
$today=date(「Y-m-d H:i:s」); //結果為:2012-07-19 09:07:32
$today=date(「D M j G:i:s T Y」); //結果為:Thu Jul 19 9:07:32 CST 2012
$today=date(『i t i s t h e jS d a y』); //結果為:07 31 07 32 31 09 Asia/Shanghai 19th 19 am 12
$today=date(『\i\t \i\s \t\h\e jS \d\a\y』); //結果為:it is the 19th day
$today=date(『H:m:s \m \i\s\ \m\o \h』); //結果為:09:07:32 m is month
②gmdate()函數:
gmdate()函數實現與date()函數相同的功能,不同的是gmdate()函數返回的時間是格林威治標准時間(GMT)。語法格式為:
string gmdate(string $format [, int $timestamp])
③getdate()函數:
getdate()函數用於獲取指定的日期和時間信息。語法格式為:
array getdate([int $timestamp])
如果沒有指定時間戳$timestamp,則使用系統當前的本地時間。getdate()函數返回一個數組,數組中的每個元素代表日期和時間中的特定組成部分。下表列出了返回數組中鍵名的說明:
鍵名
說明
返回值例子
seconds
秒的數字表示
0到59
minutes
分鍾的數字表示
0到59
hours
小時的數字表示
0到23
mday
月份中的第幾天的數字表示
1到31
wday
星期中的第幾天的數字表示
0(表示星期天)到6(表示星期六)
mon
月份的數字表示
1到12
year
4位數字表示的完整年份
例如:2016
yday
一年中的第幾天的數字表示
0到365
weekday
星期幾的完整文本表示
Sunday到Saturday
month
月份的完整的文本表示
January到December
0
自從UNIX紀元開始至今的秒數
和time()的返回值類似,是一個時間戳
示例:
<?php
$today=getdate();
print_r($today);
printf(「今天是%s年%s月%s日 星期%s \n」, $today[「year」], $today[「mon」], $today[「mday」], $today[「wday」]);
printf(「現在時間是%s時%s分%s秒」, $today[「hours」], $today[「minutes」], $today[「seconds」]);
?>
執行後的結果為:
Arrar
(
[seconds]=>15
[minutes]=>37
[hours]=>9
[mday]=>19
[wday]=>4
[mon]=>7
[year]=>2016
[yday]=>200
[weekday]=>Thursday
[month]=>July
[0]=>1342661835
)
今天是2016年7月19日 星期4
現在時間是 9時37分15秒
④checkdate()函數:
checkdate()函數用於檢查一個日期是否有效,有效則返回true,否則返回false。語法格式為:
bool checkdate(int $month, int $day, int $year)
當滿足如下條件時,checkdate()函數將認為是一個有效的日期:
·$year的值是從1到32767
·$month的值是從1到12
·$day的值在給定的$month所應該具有的天數范圍之內,包括閏年情況
示例:
echo checkdate(2,29,2012)?」有效」:」無效」;
2)時間函數:
①time()函數:
time()函數使用方法非常簡單,沒有參數調用後返回當前日期和時間的UNIX時間戳。語法格式為:
int time(void)
示例:
$next50day=time()+(50*24*60*60); //計算50天以後的日期
②mktime()函數:
mktime()函數的作用與time()函數相同,都可以返回一個時間戳表示的時間。不同的是,在mktime()函數中可以指定具體的日期和時間。語法格式為:
int mktime([int $hour],[int $minute],[int $second],[int $month], [int $day],[int $year])
上述參數列表從右向左順序省略,任何省略的參數會被設置為本地日期和時間的當前值。如果指定的時間無法表示,則返回false。mktime()函數在做日期計算和驗證方面很有用。示例:
$day1=mktime(0,0,0,12,25,2012);
$day2=mktime(0,0,0,10,1,2012);
$days=($day1-$day2)/(24*60*60); //根據時間戳計算出相差的天數
③strtotime()函數:
strtotime()函數用於將可閱讀的英文日期/時間字元串轉換成UNIX時間戳。語法格式:
int strtotime(string $time[, int $now])
其中,$time參數表示要被轉換的字元串,$now表示計算返回值的時間戳。如果沒有提供$now參數,將使用系統的當前時間。strtotime()函數成功時返回時間戳,否則返回false。
④microtime()函數:
microtime()函數調用後將返回當前UNIX時間戳和微秒數。語法格式為:
mixed microtime([bool $get_as_float])
這里的可選參數$get_as_float是一個布爾值,如果為true將返回一個浮點數。默認不帶參數時將以「msec sec」格式返回一個字元串,其中msec是微秒部分,sec是UNIX時間戳。