PHP 的命令列模式能使得 PHP 指令碼能完全獨立於 網頁伺服器單獨運行。在linux下我們通常可以使用PHP的命令列模式來調試一些東西,和crontab
定時執行一些PHP檔案。
通常PHP可執行檔命令在PHP安裝目錄的bin檔案夾下面,名稱一般是php,或者php-cli。當然這跟你安裝的方式及安裝時配置的參數有關。
由於有兩種SAPI(Server
Application Programming Interface,服務端應用編程連接埠):CLI
和 CGI,儘管它們之間有很多共同的行為,
但是他們還是有很多的不同,具體可以查看PHP的文檔http://www.php.net/manual/zh/features.commandline.php。我們今天講的便是CLI SAPI。
要確定你們使用的PHP命令是CLI還是CGI,可以使用命令/php_install_dir/bin/php -v查看,如:
可以看到該命令是CLI的。
下面讓我們來看看具體的使用方法:
使用 /php_install_dir/bin/php -h可以查看該命令的相關參數
-a : 互動式運行 PHP。
-c : 指定php.ini的位置,當然設定檔的名稱不一定是php.ini,你也可以取名為php-test.ini。
通常這樣使用:
$
php -c /custom/directory/php-test.ini test.php
意思是說,使用設定檔php-test.ini來運行test.php。
-n :不使用任何php.ini檔案直接運行。
-d :自訂php.ini檔案中相關的配置選項的值:
$ php -d max_execution_time ,設定max_execution_time為1
$ php -d max_execution_time= ,設定max_execution_time為“”
$ php -d max_execution_time=20,設定max_execution_time為20
-e :啟用擴充提示模式,被用於調試/測試。
-f :指定要解析的PHP檔案,預設可以省略。
-h :顯示協助。
-i : 相當於調用了phpinfo(),顯示PHP相關的配置和模組。
-l :不檢查致命錯誤,僅僅是簡單的語法檢查。
-m :列印出php內建的和已載入的zend模組
$ php -m
-r : 在命令列內運行單行 PHP
代碼
$ php -r ' var $a=array(1,"123","abc");var_dump($a)';
-B :在處理 stdin 之前先執行 PHP 代碼。PHP 5 新加。
-R :對每個輸入行都執行 PHP 代碼。
-F :對每個輸入行都執行 PHP 檔案。
-E :在處理完輸入後執行的 PHP 代碼。
-s :使用內建機制來解析檔案並為其產生一個 HTML
高亮版本並將結果寫到標準輸出。
-v :列印PHP SAPI和Zend 的版本資訊。
-w :列印去除了注釋和多餘空白的原始碼。
-z :載入 Zend 擴充庫。如果僅給定一個檔案名稱,PHP
將試圖從當前系統擴充庫的預設路徑(在 Linux
系統下,該路徑通常由 /etc/ld.so.conf
指定)載入該擴充庫。如果用一個絕對路徑指定檔案名稱,則不會使用系統的擴充庫預設路徑。如果用相對路徑指定的檔案名稱,則
PHP 僅試圖在目前的目錄的相對目錄載入擴充庫。
--ini :列印設定檔的路徑和名稱。
$ php --ini
--rf :列印關於指定某個函數的相關資訊。
$ php --rf substr
--rc :列印關於指定某個類的相關資訊。
--re :列印關於指定某個php模組的相關資訊。
--ri :列印關於指定某個php模組的配置資訊。