Usage: php [options] [-f] <file> [args...] php [options] -r <code> [args...] php [options] [-- args...] -s Display colour syntax highlighted source. -w Display source with stripped comments and whitespace. -f <file> Parse <file>. -v Version number -c <path>|<file> Look for php.ini file in this directory -a Run interactively -d foo[=bar] Define INI entry foo with value 'bar' -e Generate extended information for debugger/profiler -z <file> Load Zend extension <file>. -l Syntax check only (lint) -m Show compiled in modules -i PHP information -r <code> Run PHP <code> without using script tags <?..?> -h This help args... Arguments passed to script. Use -- args when first argument starts with - or script is read from stdin |
CLI SAPI 模塊有以下三種不同的方法來獲取您要運行的 PHP 代碼:
創(chuàng)新互聯(lián)秉承實現(xiàn)全網(wǎng)價值營銷的理念,以專業(yè)定制企業(yè)官網(wǎng),網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計,小程序設(shè)計,網(wǎng)頁設(shè)計制作,成都手機網(wǎng)站制作,營銷型網(wǎng)站幫助傳統(tǒng)企業(yè)實現(xiàn)“互聯(lián)網(wǎng)+”轉(zhuǎn)型升級專業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術(shù)和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術(shù)人才,對客戶都以感恩的心態(tài)奉獻自己的專業(yè)和所長。
在windows環(huán)境下,盡量使用雙引號, 在linux環(huán)境下則盡量使用單引號來完成。
讓 PHP 運行指定文件。
php my_script.php php -f "my_script.php" |
以上兩種方法(使用或不使用 -f 參數(shù))都能夠運行給定的 my_script.php 文件。您可以選擇任何文件來運行,您指定的 PHP 腳本并非必須要以 .php 為擴展名,它們可以有任意的文件名和擴展名。
在命令行直接運行 PHP 代碼。
php -r "print_r(get_defined_constants());" |
在使用這種方法時,請您注意外殼變量的替代及引號的使用。
注: 請仔細閱讀以上范例,在運行代碼時沒有開始和結(jié)束的標記符!加上 -r 參數(shù)后,這些標記符是不需要的,加上它們會導(dǎo)致語法錯誤。
通過標準輸入(stdin)提供需要運行的 PHP 代碼。
以上用法給我們提供了非常強大的功能,使得我們可以如下范例所示,動態(tài)地生成 PHP 代碼并通過命令行運行這些代碼:
$ some_application | some_filter | php | sort -u >final_output.txt |
以上三種運行代碼的方法不能同時使用。
和所有的外殼應(yīng)用程序一樣,PHP 的二進制文件(php.exe 文件)及其運行的 PHP 腳本能夠接受一系列的參數(shù)。PHP 沒有限制傳送給腳本程序的參數(shù)的個數(shù)(外殼程序?qū)γ钚械淖址麛?shù)有限制,但您通常都不會超過該限制)。傳遞給您腳本的參數(shù)可在全局變量 $argv 中獲取。該數(shù)組中下標為零的成員為腳本的名稱(當 PHP 代碼來自標準輸入獲直接用 -r 參數(shù)以命令行方式運行時,該名稱為“-”)。另外,全局變量 $argc 存有 $argv 數(shù)組中成員變量的個數(shù)(而非傳送給腳本程序的參數(shù)的個數(shù))。
只要您傳送給您腳本的參數(shù)不是以 - 符號開頭,您就無需過多的注意什么。向您的腳本傳送以 - 開頭的參數(shù)會導(dǎo)致錯誤,因為 PHP 會認為應(yīng)該由它自身來處理這些參數(shù)。您可以用參數(shù)列表分隔符 -- 來解決這個問題。在 PHP 解析完參數(shù)后,該符號后所有的參數(shù)將會被原樣傳送給您的腳本程序。
# 以下命令將不會運行 PHP 代碼,而只顯示 PHP 命令行模式的使用說明: $ php -r 'var_dump($argv);' -h Usage: php [options] [-f] <file> [args...] [...] # 以下命令將會把“-h”參數(shù)傳送給腳本程序,PHP 不會顯示命令行模式的使用說明: $ php -r "var_dump($argv);" -- -h array(2) { [0]=> string(1) "-" [1]=> string(2) "-h" } |
除此之外,我們還有另一個方法將 PHP 用于外殼腳本。您可以在寫一個腳本,并在第一行以 #!/usr/bin/php 開頭,在其后加上以 PHP 開始和結(jié)尾標記符包含的正常的 PHP 代碼,然后為該文件設(shè)置正確的運行屬性。該方法可以使得該文件能夠像外殼腳本或 PERL 腳本一樣被直接執(zhí)行。
#!/usr/bin/php |
假設(shè)改文件名為 test 并被放置在當前目錄下,我們可以做如下操作:
$ chmod 755 test $ ./test -h -- foo array(4) { [0]=> string(6) "./test" [1]=> string(2) "-h" [2]=> string(2) "--" [3]=> string(3) "foo" } |
正如您所看到的,在您向該腳本傳送以 - 開頭的參數(shù)時,腳本仍然能夠正常運行。
------------------------------------------------------------------------------命令選項-----------------------------------------------------
表格 23-3. 命令行選項
選項名稱 | 描 述 | |||
---|---|---|---|---|
-s | 顯示有語法高亮色彩的源文件。 該參數(shù)使用內(nèi)建機制來解析文件并為其生成一個 HTML 高亮版本并將結(jié)果寫到標準輸出。請注意該過程所做的只是生成了一個 <code> [...] </code> 的 HTML 標記符塊,并不包含任何的 HTML 頭。
| |||
-w | 顯示除去了注釋和空格的源代碼。
| |||
-f | 解析并運行給定的文件名。該參數(shù)為可選參數(shù)且可以不加,僅指明需要運行的文件名即可。 | |||
-v | 將 PHP、PHP SAPI 及 Zend 的版本信息寫入的標準輸出。例如:
| |||
-c | 用該參數(shù),您可以指定一個放置 php.ini 文件的目錄,或者直接指定一個自定義的 INI 文件,其文件名可以不是 php.ini。例如:
| |||
-a | 交互地運行 PHP。 | |||
-d | 用該參數(shù)可以自行設(shè)置 php.ini 文件中設(shè)置變量的值,其語法為:
范例:
| |||
-e | 為調(diào)試器等生成擴展信息。 | |||
-z | 加載 Zend 擴展庫。如果僅給定一個文件名,PHP 將試圖從您系統(tǒng)擴展庫的默認路徑(在 Linux 系統(tǒng)下,該路徑通常由 /etc/ld.so.conf 指定)加載該擴展庫。如果您用一個絕對路徑指定文件名,則系統(tǒng)的擴展庫默認路徑將不會被使用。如果用相對路徑指定的文件名,PHP 則僅試圖加載相對于當前目錄的擴展庫。 | |||
-l | 該參數(shù)提供了對指定 PHP 代碼進行語法檢查的方便的方法。如果成功,則向標準輸出寫入 No syntax errors detected in <filename> 字符串,并且外殼返回值為 0。如果失敗,則 Errors parsing <filename> 以及內(nèi)部解析器錯誤信息會一起被寫入到標準輸出,同時外殼返回值將別設(shè)置為 255。 該參數(shù)將無法檢查致命錯誤(如未定義函數(shù)),如果您希望檢測之名錯誤,請使用 -f 參數(shù)。
| |||
-m | 使用該參數(shù),PHP 將打印出內(nèi)置以及已加載的 PHP 及 Zend 模塊:
| |||
-i | 該命令行參數(shù)會調(diào)用 phpinfo() 函數(shù),并打印出結(jié)果。如果 PHP 沒有正常工作,我們建議您執(zhí)行 php -i 命令來查看在信息表格之前或者對應(yīng)的地方是否有任何錯誤信息輸出。請注意輸出的內(nèi)容為 HTML 格式,因此輸出的信息篇幅較大。 | |||
-r | 使用該參數(shù)可以在命令行運行 PHP 代碼。您無需加上 PHP 的起始和結(jié)束標識符(<?php 和 ?>),否則將會導(dǎo)致語法解析錯誤。
| |||
-h | 使用該參數(shù),您可以得到完整的命令行參數(shù)的列表及這些參數(shù)作用的簡單描述。 |
PHP 的命令行模式能使得 PHP 腳本能完全獨立于 WEB 服務(wù)器單獨運行。如果您使用 Unix 系統(tǒng),您需要在您的 PHP 腳本的最前面加上一行特殊的代碼,使得它能夠被執(zhí)行,這樣系統(tǒng)就能知道用什么樣的程序要運行該腳本。在 Windows 平臺下您可以將 php.exe 和 .php 文件的雙擊屬性相關(guān)聯(lián),您也可以編寫一個批處理文件來用 PHP 執(zhí)行腳本。為 Unix 系統(tǒng)增加的第一行代碼不會影響該腳本在 Windows 下的運行,因此您也可以用該方法編寫跨平臺的腳本程序。以下是一個簡單的PHP 命令行程序的范例。
例子 23-1. 試圖以命令行方式運行的 PHP 腳本(script.php)
|
在以上腳本中,我們用第一行特殊的代碼來指明該文件應(yīng)該由 PHP 來執(zhí)行。我們在這里使用 CLI 的版本,因此不會有 HTTP 頭信息輸出。在您用 PHP 編寫命令行應(yīng)用程序時,您可以使用兩個參數(shù):$argc 和 $argv。前面一個的值是比參數(shù)個數(shù)大 1 的整數(shù)(運行的腳本本身的名稱也被當作一個參數(shù))。第二個時包含有參數(shù)的數(shù)組,其第一個元素為腳本的名稱,下標為數(shù)字 0($argv[0])。
在以上程序中我們檢查了參數(shù)的個數(shù)是大于 1 個還是小于 1 個。即時參數(shù)是 --help、-help、-h 或 -?,我們?nèi)匀淮蛴〕鰩椭畔?,并同時動態(tài)輸出腳本的名稱。如果還收到了其它參數(shù),我們也把它們顯示出來。
如果您希望在 Unix 下運行以上腳本,您需要使得它成為可執(zhí)行腳本,然后簡單的運行 script.php echothis 或 script.php -h。在 Windows 下,您可以為此編寫一個批處理文件:
分享標題:php-cli知識
URL分享:http://aaarwkj.com/article6/gippig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站改版、用戶體驗、微信公眾號、建站公司、App設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)