之前一直想,在命令行下能不能運行PHP程序,像C語言一樣可以通過命令行拿到參數。今天嘗試了一下發現可感覺挺有意思的,平時寫着程序玩的時候就可以這樣用,下面讓咱么來看看怎么做的。
我的環境是 php5.6
一、PHP CLI模式
什么是CLI ? 是PHP自4.3版本之后提供的CLI SAPI 叫CLI(Command Line Interface),主要用於PHP外殼應用的開發。說白了就是支持命令行下解析PHP代碼。外殼應用可以理解為提供命令行界面的解析器。比如Linux下的shell等。從PHP5之后PHP的發行包中CLI的執行文件是php.exe,CGI版本的是php-cgi.exe,並且其中附帶一個php-win.exe的文件,其相當於CLI版本,其不輸出任何信息。其實配置window下環境變量主要就是這幾個文件。
二、命令下執行PHP程序
要在命令行下運行PHP程序,可以不需要設置window,直接執行類似下面這樣的命令即可:
F:\XAMPP\php\php.exe -f "F:\XAMPP\htdocs\test.php" -- -arg1 -arg2
前半部分是php.exe所在的位置, -f 是選項 后面接要執行php文件的路徑 -arg1 -arg2是所帶的參數。每次這樣做感覺很麻煩所以查閱相關資料找到了別的方法,感覺這種方法很方便,下面讓我們來看看。
我們只需要做下面幾個步驟:
1、在環境變量里面加入php.exe ,php-win.exe 或 php-cli.exe的路徑
2、將.PHP后綴添加到PATHTEXT中
3、將.PHP后綴關聯成一種文件類型,用下面的命令執行
assoc .php=phpfile
4、將phpfile類型的文件關聯到相關的可執行程序即可,用下面的命令執行
ftype phpfile="F:\XAMPP\PHP\php.exe" -f "%1" -- %~2
這樣就可以直接不加php.exe文件所在路徑和php文件的后綴直接執行了。其中可能遇到殺毒軟件修改注冊表的提示,直接全部允許就好。
可能會有疑問,這樣我們如何在PHP代碼中拿到命令行中的參數,其實參數在$_SERVER中就可有:
在命令行下輸入:
demo_cli.php 123456789
這條命令的意思是執行demo_cli.php參數是123456789;接下來我們來打印輸出看看$_SERVER的內容(只顯示部分內容):
'argv' =>
array(2) { [0] =>
string(49) "F:\XAMPP\htdocs\ [1] => string(9) "123456789" } 'argc' => int(2)
可以看到argv中有我們想要的參數值,直接拿取即可
作者: 小灰灰heart
鏈接:http://www.imooc.com/article/6433
來源:慕課網
