程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php-cli簡介(不會Shell語言一樣用Shell)

php-cli簡介(不會Shell語言一樣用Shell)

編輯:PHP綜合
1.基礎知識

1.1 什麼是Shell編程?
在 Unix 中,shell 可不是簡單的命令解釋器(典型的有 Windows 中的 DOS ),而是一個全功能的編程環境。Shell 是操作系統的一部分,用來與用戶打交道,並且可以用來協調各個命令【1】。用Shell編程可以靈活地解決大量重復任務,十分方便。但是,Shell的語法十分怪異(個人意見),不容易記,如果現在熟悉的語言可以用來寫shell那就好了——比如php——就可以快速開發Shell程序了(比如我的Preminder的後台程序),於是便有了這篇文章,本文以Linux為例說明php-cli的用法,其它平台的版本類似。

1.2 什麼是php-cli?
剛才說到,我們可以用php來開發Shell程序。有的同學可能會問啦:“php不是用來做網頁的麼?-_-”。是的,php可以用來做動態網頁,並且當初php就是為做動態網頁而開發的語言,但是理論上php可以用來做任何的程序,甚至是桌面程序,而php-cli是php在命令行運行的支持環境,也就是我們說的可以用來寫Shell的環境支持。

php-cli是php Command Line Interface的簡稱,如同它名字的意思,就是php在命令行運行的接口,區別於在Web服務器上運行的php環境(php-cgi, isapi等)【2】。

也就是說,php不單可以寫前台網頁,它還可以用來寫後台的程序。

2. 執行php-cli腳本

2.1 php-cli的語法
當然是跟php一模一樣啦,因為它就是php嘛!只不過一些默認的參數與php-cgi不同,比如運行時間:php-cli默認運行時間是無窮,而網頁php默認設置是30s。

2.2 執行php-cli腳本

2.2.1. 直接在終端執行php
kangzj@localhost# php -r 'print_r(get_defined_constants());'2.2.2. 運行php-cli腳本文件
kangzj@localhost# php my_script.php

kangzj@localhost# php -f my_script.php上而說的php文件就是一般的php文件沒有什麼不同。還有一種方式,就是在文件中指令解釋器,就可以直接在終端以”./test.php執行腳本了”,test.php就像下面這樣:

復制代碼 代碼如下:
#!/usr/bin/php -q
<?php
echo "Hello world of PHP CLI!";
?>


補充:php的Shell程序並不一定以php為擴展名,可以以任意擴展名,甚至不要擴展名,只是為了清楚,我才用的php擴展名。

2.2.3. 用Cron執行php-cli腳本
cron是一個linux下的定時執行工具,可以在無需人工干預的情況下運行作業,周期性作業,比如備份數據,Preminder定期查詢PR等等,添加的方法:打開/etc/crontab,添加:

0 13 * * * /usr/bin/php -f /home/phpscripts/phpcli.php

4. 結語
如果你會php的話,那麼你也會了一種Shell編程語言!

如果你不會php,你去學php,就相當於一下子學會動態網頁和Shell兩種語言!並且你甚至可以用php來寫具有圖形界面的應用程序,Dnspod的動態域名客戶端中就有一種是用php開發的。

php的易學是出名的,如果你還不會,那是在猶豫什麼呢?

另外,再宣傳一下我的”Preminder”——PR更新Email提醒服務~~

5. 參考文獻
1.Linux Shell簡介 : http://www.jb51.net/article/37801.htm
2.PHP Command Line Interface : Mystic Unleashed :http://www.php-cli.com/
3.ch 4.2, php manual : http://www.php.net
PS:Shell命令還是要知道一些的,否則有些功能不太好實現。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved