以下是 php 二進位制檔案(即 php.exe 程式)提供的命令列模式的選項引數,您隨時可以通過 php -h 命令來查詢這些引數。
usage: php [options] [-f] [args...]
php [options] -r[args...]
php [options] [-- args...]
-s display colour syntax highlighted source.
-w display source with stripped comments and whitespace.
-f parse
. -v version number
-c |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 load
zend extension .
-l syntax check only (lint)
-m show compiled in modules
-i php information
-rrun
phpwithout 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 **:
在windows環境下,盡量使用雙引號, 在linux環境下則盡量使用單引號來完成。
讓 php 執行指定檔案。
php my_script.php
php -f
"my_script.php"
以上兩種方法(使用或不使用 -f 引數)都能夠執行給定的 my_script.php 檔案。您可以選擇任何檔案來執行,您指定的 php 指令碼並非必須要以 .php 為副檔名,它們可以有任意的檔名和副檔名。
2. 在命令列直接執行 php **。
php -r "print_r(get_defined_constants());"
在使用這種方法時,請您注意外殼變數的替代及引號的使用。
注: 請仔細閱讀以上範例,在執行**時沒有開始和結束的標記符!加上 -r 引數後,這些標記符是不需要的,加上它們會導致語法錯誤。通過標準輸入(stdin)提供需要執行的 php **。
以上用法給我們提供了非常強大的功能,使得我們可以如下範例所示,動態地生成 php **並通過命令列執行這些**:
以上三種執行**的方法不能同時使用。
和所有的外殼應用程式一樣,php 的二進位制檔案(php.exe 檔案)及其執行的 php 指令碼能夠接受一系列的引數。php 沒有限制傳送給指令碼程式的引數的個數(外殼程式對命令列的字元數有限制,但您通常都不會超過該限制)。傳遞給您指令碼的引數可在全域性變數 ar
gv中獲
取。該數
組中下標
為零的成
員為指令碼
的名稱(
當php
**來自
標準輸入
獲直接用
−r引數
以命令列
方式執行
時,該名
稱為「−
」)。另
外,全域性
變數argc 存有 $argv 陣列中成員變數的個數(而非傳送給指令碼程式的引數的個數)。
只要您傳送給您指令碼的引數不是以 - 符號開頭,您就無需過多的注意什麼。向您的指令碼傳送以 - 開頭的引數會導致錯誤,因為 php 會認為應該由它自身來處理這些引數。您可以用引數列表分隔符 – 來解決這個問題。在 php 解析完引數後,該符號後所有的引數將會被原樣傳送給您的指令碼程式。
# 以下命令將不會執行 php **,而只顯示 php 命令列模式的使用說明:
$ php -r 'var_dump($argv);' -h
usage: php [options] [-f] [args...]
[...]
# 以下命令將會把「-h」引數傳送給指令碼程式,php 不會顯示命令列模式的使用說明:
$ php -r "var_dump($argv);" -- -h
array(2)
除此之外,我們還有另乙個方法將 php 用於外殼指令碼。您可以在寫乙個指令碼,並在第一行以 #!/usr/bin/php 開頭,在其後加上以 php 開始和結尾標記符包含的正常的 php **,然後為該檔案設定正確的執行屬性。該方法可以使得該檔案能夠像外殼指令碼或 perl 指令碼一樣被直接執行。
#!/usr/bin/php
<?php
var_dump($argv);
?>
假設改檔名為 test 並被放置在當前目錄下,我們可以做如下操作:
$ chmod 755 test
$ ./test -h -- foo
array(4)
正如您所看到的,在您向該指令碼傳送以 - 開頭的引數時,指令碼仍然能夠正常執行。
php命令列執行出錯
windows 問題描述 提示是找不到模組php oci.dll等等 問題分析 應該是沒有裝oracle就開了這個擴充套件.問題解決 關掉相關oracle的擴充套件 linux 問題描述 whereis php 沒有內容 問題分析 應該是沒有裝php,但是apache能執行,就是說明安裝了.只是少了...
windows下使用命令列執行PHP
之前一直想,在命令列下能不能執行php程式,像c語言一樣可以通過命令列拿到引數。今天嘗試了一下發現可感覺挺有意思的,平時寫著程式玩的時候就可以這樣用,下面讓咱麼來看看怎麼做的。我的環境是 php5.6 一 php cli模式 什麼是cli 是php自4.3版本之後提供的cli sapi 叫cli c...
yii 命令列執行
1.建立匯入命令類protected commands importcommand.php檔案 class importcommand extends cconsolecommand 2.修改配置檔案protected config console.php 主要是連線資料庫,和main.php配置是...