以下是 php 二進制文件(即 php.exe 程序)提供的命令行模式的選項參數,您隨時可以通過 PHP -h 命令來查詢這些參數。
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 stdinCLI SAPI 模塊有以下三種不同的方法來獲取您要運行的 PHP 代碼: 在windows環境下,盡量使用雙引號, 在linux環境下則盡量使用單引號來完成。
讓 PHP 運行指定文件。php my_script.phpphp -f "my_script.php"以上兩種方法(使用或不使用 -f 參數)都能夠運行給定的 my_script.php 文件。您可以選擇任何文件來運行,您指定的 PHP 腳本并非必須要以 .php 為擴展名,它們可以有任意的文件名和擴展名。 2. 在命令行直接運行 PHP 代碼。
php -r "print_r(get_defined_constants());"
在使用這種方法時,請您注意外殼變量的替代及引號的使用。
注: 請仔細閱讀以上范例,在運行代碼時沒有開始和結束的標記符!加上 -r 參數后,這些標記符是不需要的,加上它們會導致語法錯誤。
通過標準輸入(stdin)提供需要運行的 PHP 代碼。 以上用法給我們提供了非常強大的功能,使得我們可以如下范例所示,動態地生成 PHP 代碼并通過命令行運行這些代碼:$ some_application | some_filter | php | sort -u >final_output.txt以上三種運行代碼的方法不能同時使用。
和所有的外殼應用程序一樣,PHP 的二進制文件(php.exe 文件)及其運行的 PHP 腳本能夠接受一系列的參數。PHP 沒有限制傳送給腳本程序的參數的個數(外殼程序對命令行的字符數有限制,但您通常都不會超過該限制)。傳遞給您腳本的參數可在全局變量
只要您傳送給您腳本的參數不是以 - 符號開頭,您就無需過多的注意什么。向您的腳本傳送以 - 開頭的參數會導致錯誤,因為 PHP 會認為應該由它自身來處理這些參數。您可以用參數列表分隔符 – 來解決這個問題。在 PHP 解析完參數后,該符號后所有的參數將會被原樣傳送給您的腳本程序。
# 以下命令將不會運行 PHP 代碼,而只顯示 PHP 命令行模式的使用說明:$ php -r 'var_dump($argv);' -hUsage: php [options] [-f] <file> [args...][...]# 以下命令將會把“-h”參數傳送給腳本程序,PHP 不會顯示命令行模式的使用說明:$ php -r "var_dump($argv);" -- -harray(2) { [0]=> string(1) "-" [1]=> string(2) "-h"}除此之外,我們還有另一個方法將 PHP 用于外殼腳本。您可以在寫一個腳本,并在第一行以 #!/usr/bin/php 開頭,在其后加上以 PHP 開始和結尾標記符包含的正常的 PHP 代碼,然后為該文件設置正確的運行屬性。該方法可以使得該文件能夠像外殼腳本或 PERL 腳本一樣被直接執行。
#!/usr/bin/php<?php var_dump($argv);?>假設改文件名為 test 并被放置在當前目錄下,我們可以做如下操作:
$ chmod 755 test$ ./test -h -- fooarray(4) { [0]=> string(6) "./test" [1]=> string(2) "-h" [2]=> string(2) "--" [3]=> string(3) "foo"}正如您所看到的,在您向該腳本傳送以 - 開頭的參數時,腳本仍然能夠正常運行。
新聞熱點
疑難解答
圖片精選