通常php都做http方式請求了,可以使用get or post方式接收引數,有些時候需要在shell命令下把php當作指令碼執行,比如定時任務。這就涉及到在shell命令下如何給php傳參的問題,通常有三種方式傳參。
一、使用$argv or $argc引數接收
複製**
**如下:
<?php
/*** 使用 $argc $argv 接受引數 */
echo "接收到個引數";
print_r($argv); 執行
複製**
**如下:
[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); 執行
複製**
**如下:
[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
請輸入您的部落格名:***
您輸入的資訊是:***
你也可以這麼幹,不讓使用者輸入空資訊
複製**
**如下:
<?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
請輸入您的部落格名:
抱歉,部落格名不能為空,請重新輸入您的部落格名:ddd
您輸入的資訊是:ddd
php PHP命令列指令碼接收傳入引數的三種方式
通常php都做http方式請求了,可以使用get or post方式接收引數,有些時候需要在shell命令下把php當作指令碼執行,比如定時任務。這就涉及到在shell命令下如何給php傳參的問題,通常有三種方式傳參。一 使用 argv or argc引數接收 複製 如下 使用 argc argv ...
Shell指令碼接收來自命令列傳入的引數
寫乙個簡單的傳引數指令碼來測試 bin bash if 1 start then echo do start elif 1 stop then echo do stop else echo pleasemake sure the positon variable is start or stop.f...
PHP從命令列接收引數
昨天,在牛客網做華為機試題,不太熟悉它的環境,吃了大虧。測試樣例是通過標準輸入輸入的,執行結果是通過標準輸出輸出的。標準輸入就是鍵盤,標準輸出就是顯示器。經過大量實踐,發現fscanf 最好用,沒有之一!mixed fscanf resource handle,string format mixed...