在命令列下執行PHP指令碼 帶引數 的方法

2021-07-25 22:01:37 字數 2431 閱讀 9308

通常php都做http方式請求了,可以使用get or post方式接收引數,有些時候需要在shell命令下把php當作指令碼執行,比如定時任務。這就涉及到在shell命令下如何給php傳參的問題,通常有三種方式傳參。

一、使用$argv or $argc引數接收

<?php /**

* 使用 $argc $argv 接受引數 */

echo "接收到個引數";

print_r($argv);

在linux下執行:

[root@dell113 lee]#

/usr/local/php/bin/php test.php

接收到1個引數array

( [0] => test.php

)[root@dell113 lee]

#/usr/local/php/bin/php test.php a b c d

接收到5個引數array

( [0] => test.php

[1] =>a

[2] =>b

[3] =>c

[4] =>d

)[root@dell113 lee]

#

二、使用getopt函式

<?php /**

* 使用 getopt函式 */

$param_arr = getopt('a:b:');

print_r($param_arr);

在linux下執行:

[root@dell113 lee]#

/usr/local/php/bin/php test.php -a 345

array

( [a] => 345)

[root@dell113 lee]

#/usr/local/php/bin/php test.php -a 345 -b 12q3

array

( [a] => 345[b] =>12q3

)[root@dell113 lee]

#/usr/local/php/bin/php test.php -a 345 -b 12q3 -e 3322ff

array

( [a] => 345[b] =>12q3

)

三、提示使用者輸入

<?php /**

* 提示使用者輸入,類似python */

fwrite(stdout,'請輸入您的部落格名:');

echo '您輸入的資訊是:'.fgets(stdin);

執行:

[root@dell113 lee]#

/usr/local/php/bin/php test.php

請輸入您的部落格名:指令碼之家 www.jb51.net

您輸入的資訊是:指令碼之家 www.jb51.net

◆ 你也可以這麼幹,不讓使用者輸入空資訊

<?php /**

* 提示使用者輸入,類似python */

$fs = true;

doelse

$name = trim(fgets

(stdin)); }

while(!$name);

echo '您輸入的資訊是:'.$name."\r\n";

執行:

[root@dell113 lee]#

/usr/local/php/bin/php test.php

請輸入您的部落格名:

抱歉,部落格名不能為空,請重新輸入您的部落格名:指令碼之家

您輸入的資訊是:指令碼之家

命令列下執行帶引數php

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

命令列下執行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,看來要好好學一學這門語言了。為了做一些簡單的練習,都要開啟webserver,有些大材小用,所以,就想直接在命令列下執行php指令碼。而且,既然php是一種指令碼語言,一些日常用的指令碼工具也可以直接用它來實現,權當練習了。從網上搜了一些資料,整理如下 注 以...