PHP下的命令列執行

2021-07-27 03:14:00 字數 3032 閱讀 9110

以下是 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配置是...