您好,登錄后才能下訂單哦!
這篇文章主要介紹php-cli有什么用,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
1.基礎(chǔ)知識(shí)
1.1 什么是Shell編程?
在 Unix 中,shell 可不是簡(jiǎn)單的命令解釋器(典型的有 Windows 中的 DOS ),而是一個(gè)全功能的編程環(huán)境。Shell 是操作系統(tǒng)的一部分,用來(lái)與用戶打交道,并且可以用來(lái)協(xié)調(diào)各個(gè)命令【1】。用Shell編程可以靈活地解決大量重復(fù)任務(wù),十分方便。但是,Shell的語(yǔ)法十分怪異(個(gè)人意見),不容易記,如果現(xiàn)在熟悉的語(yǔ)言可以用來(lái)寫shell那就好了——比如php——就可以快速開發(fā)Shell程序了(比如我的Preminder的后臺(tái)程序),于是便有了這篇文章,本文以Linux為例說(shuō)明php-cli的用法,其它平臺(tái)的版本類似。
1.2 什么是php-cli?
剛才說(shuō)到,我們可以用php來(lái)開發(fā)Shell程序。有的同學(xué)可能會(huì)問(wèn)啦:“php不是用來(lái)做網(wǎng)頁(yè)的么?-_-”。是的,php可以用來(lái)做動(dòng)態(tài)網(wǎng)頁(yè),并且當(dāng)初php就是為做動(dòng)態(tài)網(wǎng)頁(yè)而開發(fā)的語(yǔ)言,但是理論上php可以用來(lái)做任何的程序,甚至是桌面程序,而php-cli是php在命令行運(yùn)行的支持環(huán)境,也就是我們說(shuō)的可以用來(lái)寫Shell的環(huán)境支持。
php-cli是php Command Line Interface的簡(jiǎn)稱,如同它名字的意思,就是php在命令行運(yùn)行的接口,區(qū)別于在Web服務(wù)器上運(yùn)行的php環(huán)境(php-cgi, isapi等)【2】。
也就是說(shuō),php不單可以寫前臺(tái)網(wǎng)頁(yè),它還可以用來(lái)寫后臺(tái)的程序。
2. 執(zhí)行php-cli腳本
2.1 php-cli的語(yǔ)法
當(dāng)然是跟php一模一樣啦,因?yàn)樗褪莗hp嘛!只不過(guò)一些默認(rèn)的參數(shù)與php-cgi不同,比如運(yùn)行時(shí)間:php-cli默認(rèn)運(yùn)行時(shí)間是無(wú)窮,而網(wǎng)頁(yè)php默認(rèn)設(shè)置是30s。
2.2 執(zhí)行php-cli腳本
2.2.1. 直接在終端執(zhí)行php
kangzj@localhost# php -r 'print_r(get_defined_constants());'2.2.2. 運(yùn)行php-cli腳本文件
kangzj@localhost# php my_script.php
kangzj@localhost# php -f my_script.php上而說(shuō)的php文件就是一般的php文件沒有什么不同。還有一種方式,就是在文件中指令解釋器,就可以直接在終端以”./test.php執(zhí)行腳本了”,test.php就像下面這樣:
復(fù)制代碼 代碼如下:
#!/usr/bin/php -q
<?php
echo "Hello world of PHP CLI!";
?>
補(bǔ)充:php的Shell程序并不一定以php為擴(kuò)展名,可以以任意擴(kuò)展名,甚至不要擴(kuò)展名,只是為了清楚,我才用的php擴(kuò)展名。
2.2.3. 用Cron執(zhí)行php-cli腳本
cron是一個(gè)linux下的定時(shí)執(zhí)行工具,可以在無(wú)需人工干預(yù)的情況下運(yùn)行作業(yè),周期性作業(yè),比如備份數(shù)據(jù),Preminder定期查詢PR等等,添加的方法:打開/etc/crontab,添加:
0 13 * * * /usr/bin/php -f /home/phpscripts/phpcli.php
以上是“php-cli有什么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。