PHP 怎麼這麼紅
最近 PHP(Personal Hypertext Preprocessor) 似乎已經成了這一兩年來 Linux/Unix 上最廣為大家所使用的網頁處理語言﹐它的方便
PHP 確實有這個資格可以這麼紅﹐原因有下面數點 :
PHP 是 OpenSource 軟件﹐完全免費﹐可以自由散布﹐因此吸引了極多的人來使用﹐也因為如此﹐吸引到了商業公司為其發展更好的引擎與最佳化軟件(請參考 )
PHP 本身非常簡單易懂﹐淺顯的指令語法﹐外加一些基本的對象導向處理能力﹐讓新手足以在最短時間內學會
PHP 提供了相當多的功能﹐包含了數學處理
PHP 非常容易與 Apache 相結合﹐作為 Apache 的模塊來使用﹐設定安裝上相當簡單﹐也因為 Apache 目前已經占據了 Web Server 全球
不過﹐這次要講的主題不是 PHP 在網頁設計上的應用﹐而是 PHP 在 Shell Script 上的應用﹐一般所知的 Shell Script 大約就是 tcsh
PHP 執行檔的安裝
一般 PHP 作為網頁處理語言都是要編譯成 Apache 的模塊﹐這裡當然不麼做﹐也因此編譯起來很簡單﹐只要以 root 的身分進行如下動作 :
解開 php
cd php
configure
make
編譯完之後﹐在 php 目錄下有一個可執行檔﹐檔名為 php﹐將它 copy 到 /usr/local/bin 下即可
第一個程序
開始撰寫我們的第一個 PHP Shell Script 程序﹐這個例子印出
#!/usr/local/bin/php
<?
echo
?>
注意到 PHP 原本是應用在網頁應用的﹐因此它內定會送出 HTML 的 HEADER﹐但是在此我們是要將 PHP 用作 Shell Script﹐
在這個例子中﹐/usr/local/bin/php 是表示要執行 /usr/local/bin/ 下的 PHP﹐因為我們剛才將它裝在該處
注意到在將這個程序存成檔案後﹐須將其 chmod 成為可執行屬性(chmod +x 文件名)﹐然後才能執行喔
進階使用 I
有時候我們需要在程序執行時﹐送進一些參數﹐比如說 ls 這個指令﹐後面可以加上
#!/usr/local/bin/php
<?
$sum=
$sum=$sum+$argv[
echo $sum;
?>
假設將此程序命名為 sum
如果要算出不特定個數的參數和﹐那麼就得要用到 $argc 這個特殊變量了 :
#!/usr/local/bin/php
<?
$sum=
for ($t=
$sum=$sum+$argv[$t];
echo $sum;
?>
假設將此程序命名為 bigsum
有時候我們需要在程序執行中輸入資料﹐但是 PHP 原本就是用於網頁設計﹐而網頁上的資料輸入自然都是用 FORM 的方式來輸入﹐所以這將 PHP 作為 Shell Script 時問題就來了﹐好在 PHP 有提供了開文件功能﹐而在 Linux/Uinx 之下﹐輸入(input)這件事原本就可以用開檔的方式來完成﹐我們要開啟的是 /dev/stdin 這個設備檔(stdin 是表示 standard input 的意思)﹐程序如下 :
#!/usr/local/bin/php
<?
$fp=fopen(
$inputstr=fgets($fp
fclose($fp);
echo
echo $inputstr;
?>
其中的 fgets($fp
進階使用 II
雖然已經可以處理輸入﹐但是這樣的功能顯然還是太簡單﹐無法應付更大的應用﹐比如說我需要一個功能是將一串資料流(data stream)中的 HTML 給去除﹐這時便需要完整地處理輸出輸入轉向的能力﹐我們可以先設計程序如下 :
#!/usr/local/bin/php
<?
$fp=fopen(
while(!feof($fp)) {
$c=fgetc($fp);
$inputstr=$inputstr
};
fclose($fp);
echo $inputstr;
?>
假設將此程序命名為 filt
more filt
這樣的做法是將 filt
我們可以在其中加上過濾 HTML 的功能 :
#!/usr/local/bin/php
<?
$fp=fopen(
while(!feof($fp)) {
$c=fgetc($fp);
$inputstr=$inputstr
};
fclose($fp);
$inputstr=ereg_replace(
echo $inputstr;
?>
假設將此程序命名為 filt
more l | filt
你便會看到刪除了 HTML TAG 的文件了
結論
PHP 拿來當 Shell Script 事實上相當地好用﹐原因是 PHP 本身很好學﹐而且它又支持了各種數據庫﹐當你已經經常拿 PHP 來設計你的網站之後﹐絕對不太喜歡再使用其它的 Shell Script 語言來處理其它必須非網頁的部份﹐這時候拿 PHP 來當做 Shell Script 的好處就會顯現出來了﹐你可以以一貫的方式來發展整個系統﹐而不必一下要用 PHP一下又用 Perl/Python 或是 C
From:http://tw.wingwit.com/Article/program/PHP/201311/20792.html