之前一直想,在命令列下能不能執行php程式,像c語言一樣可以通過命令列拿到引數。今天嘗試了一下發現可感覺挺有意思的,平時寫著程式玩的時候就可以這樣用,下面讓咱麼來看看怎麼做的。
我的環境是 php5.6
一、php cli模式
什麼是cli ? 是php自4.3版本之後提供的cli sapi 叫cli(command line inte***ce),主要用於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
)
'argc' =>
int(2)
可以看到argv中有我們想要的引數值,直接拿取即可。
三、總結
其實php中有很多有意思的東西,需要發現尋找,php是很有意思的。
參考:
windows命令列執行mysql
在cmd中輸入時一定要保證英文環境.1.windows命令列執行mysql 我是將mysql安裝在c program files mysql所以 c program files mysql mysql server 5.0 bin mysql uroot p 然後看下資料庫對應的使用者和主機 2.當...
用命令列執行ROBOT FRAMEWORK用例
除了在ride中執行用例,我們也可以通過命令列的形式執行用例。1.執行一整個專案 pybot 專案路徑 2.執行某個測試集 pybot 測試集的路徑 3.執行某個測試集裡面的某個用例 pybot test測試用例名稱 測試用例所在的測試集的路徑 4.執行多個測試集,命令格式 pybot d 日誌儲存...
Windows用命令列執行mysql的sql檔案
mysql h localhost u root p 123456 這裡我電腦上的使用者名稱是root,密碼123456 格式則是 mysql h 主機位址 本機localhost u 使用者名稱 root p 資料庫名 要匯入的資料檔案 比如是c mysql test.sql 比如 mysql h...