命令列下執行php指令碼

2021-07-04 19:28:00 字數 1434 閱讀 7299

最近在維護乙個**後台,開發語言是php,看來要好好學一學這門語言了。 為了做一些簡單的練習,都要開啟webserver,有些大材小用,所以,就想直接在命令列下執行php指令碼。 而且,既然php是一種指令碼語言,一些日常用的指令碼工具也可以直接用它來實現,權當練習了。 從網上搜了一些資料,整理如下:

注:以下示例執行於mac osx 10.10下。

基本執行方式

1. 讓 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());'

3. 通過標準輸入(stdin)提供需要執行的 php **。

向指令碼傳送引數

傳遞給指令碼的引數可在全域性變數 $argv 中獲取。該陣列中下標為零的成員為指令碼的名稱(當 php**來自標準輸入獲直接用 -r 引數以命令列方式執行時,該名稱為「-」)。另外,全域性變數 $argc 存有 $argv 陣列中成員變數的個數。

1. php -r 'var_dump($argv);'

輸出:array(1)

2. php -r 'var_dump($argv);』 h

輸出:array(1)

3. php -r 'var_dump($argv);' -- -h

輸出:array(2)

4. php -r 'var_dump($argv);' -h

輸出: (該命令將不會執行 php **,而只顯示 php 命令列模式的使用說明)

usage: php [options] [-f] [--] [args...]

php [options] -r[--] [args...]

請注意第三個例子和第四個例子的區別:

向指令碼傳送以 - 開頭的引數會導致錯誤,因為 php 會認為應該由它自身來處理這些引數(例4)。可以用引數列表分隔符 -- 來解決這個問題(例3)。在 php 解析完引數後,該符號後所有的引數將會被原樣傳送給php指令碼程式。

製作可執行的php指令碼

在 .php 檔案的開頭加上 #!/usr/bin/php ,並給該檔案加上可執行屬性。

例如:#!/usr/bin/php

<?php

var_dump($argv);

?>

儲存改檔案為test.php,  chmod +x test.php , 在terminal下執行: ./test.php -a -v 

輸出:array(3)

命令列下執行PHP指令碼

找到php.exe 執行php.exe 檔名 引數1 引數2.引數以空格分開,引數有空格以引號包裹 1 window下可以把當前php.exe路徑新增到環境變數的path裡,就可以直接執行php index.php 引數1 引數2.2 linux unix 借助php cli 執行命令 php h ...

PHP下的命令列執行

以下是 php 二進位制檔案 即 php.exe 程式 提供的命令列模式的選項引數,您隨時可以通過 php h 命令來查詢這些引數。usage php options f args.php options r args.php options args.s display colour syntax...

命令列下執行帶引數php

命令列下執行帶引數 php命令列下執行php 不走apache 等通訊流程 沒有http 協議,所有 get,post 傳引數不起作用 按普通應用程式傳引數的方法進行。1 test.php 測試檔案 檢視複製列印 print r ar echo n echo argc echo n 2,命令列下呼叫...