通常php都做http方式請求了,可以使用get or post方式接收引數,有些時候需要在shell命令下把php當作指令碼執行,比如定時任務。這就涉及到在shell命令下如何給php傳參的問題,通常有三種方式傳參。
一、使用$argv or $argc引數接收
<?php /**在linux下執行:* 使用 $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 /**在linux下執行:* 使用 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
請輸入您的部落格名:指令碼之家 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是一種指令碼語言,一些日常用的指令碼工具也可以直接用它來實現,權當練習了。從網上搜了一些資料,整理如下 注 以...