首頁 後端開發 php教程 PHP也可以當成Shell Script_PHP教程

PHP也可以當成Shell Script_PHP教程

Jul 21, 2016 pm 04:10 PM
php pr script shell 怎麼


PHP 怎麼這麼紅
  最近PHP(Personal Hypertext Preprocessor) 似乎已經成了這一兩年來Linux/Unix 上最廣為大家所使用的網頁處理語言﹐它的方便、強大功能與OpenSource 的特性使得它正逐漸侵蝕到傳統CGI 甚至是MicroSoft ASP(Active Server Page)的市場﹐幾乎各大網站徵招人才莫不以會PHP 作為基本條件。
  PHP 確實有這個資格可以這麼紅﹐原因有下面數點:
  PHP 是OpenSource 軟體﹐完全免費﹐可以自由散佈﹐因此吸引了極多的人來使用﹐也因為如此﹐吸引到了商業本公司為其發展更好的引擎與優化軟體(請參考http://www.zend.com/)。
  PHP 本身非常簡單易懂﹐淺顯的指令語法﹐外加一些基本的物件導向處理能力﹐讓新手足以在最短時間內學會。
  PHP 提供了相當多的功能﹐包含了數學處理、字串處理、網路相關功能、各種資料庫的支援、影像處理功能、有為數眾多的發展者正為PHP 發展各式各樣的新功能﹐擴充性極佳。
  PHP 非常容易與 Apache 結合﹐作為 Apache 的模組來使用﹐設定安裝上相當簡單﹐也因為 Apache 目前已經佔據了 Web Server 全球 60% 的市場﹐PHP 自然而然成為 Apache 最佳搭配。
  不過﹐這次要講的主題不是PHP 在網頁設計上的應用﹐而是PHP 在Shell Script 上的應用﹐一般所知的Shell Script 大約就是tcsh、bash、perl 或python 這類語言﹐我所要談的就是將PHP 當成Shell Script 來使用。
  PHP 執行檔的安裝
  一般PHP 作為網頁處理語言都是要編譯成Apache 的模組﹐這裡當然不麼做﹐也因此編譯起來很簡單﹐只要以root 的身份進行如下動作:
  解開php-3.0.xx.tar.gz
  cd php
  configure
  make
  編譯後﹐將在php 目錄下有一個可執行檔﹐名稱為它。到/usr/local/bin 下即可。注意﹐如果檔案太大﹐可以使用 strip 指令將 php 的方式將不必要的資訊移除﹐這樣檔案就會小得多了。
  第一個程式
  開始寫我們的第一個PHP Shell Script 程式﹐這個範例印出"Hello world !" :
  #!/usr/local/bin/php -q

  echo "Hello, world !";
  ?>
  注意到PHP 原本是應用在網頁應用的﹐因此它內定會用HTHTML 的HEADER﹐但是在此送出我們是要將PHP 用作Shell Script﹐"-q" 就是表示不要送HEADER 的意思﹐你可以試試看看不加上-q 的顯示結果。
  在這個例子中﹐/usr/local/bin/php 是表示要執行 /usr/local/bin/ 下的 PHP﹐因為我們剛才將它裝在該處。 echo 指令將 "Hello, world !" 印出﹐其中的 "" 字元是換行字元。
  注意到在將這個程式存成檔案後﹐須將其 chmod 成為可執行屬性(chmod x 檔案名稱)﹐然後才能執行喔。
  進階使用I
  有時候我們需要在程式執行時﹐送進一些參數﹐比如說ls 這個指令﹐後面可以加上-l 參數﹐PHP Shell Script 一樣也有支援這樣的用法﹐有兩用個特殊的變數: $argc 記錄著後面送入參數的個數﹐$argv[] 陣列參數存的則是參數的內容。例如我現在要設計一個算兩個數字總和的程式:
  #!/usr/local/bin/php -q
  
  $sum=0;
  $sum=$ sum $argv[1] $argv[2];
  echo $sum;
  ?>
  假設將此程式命名為sum.php3﹐則執行sum.php3 1 2 按下enter 則會印出3。
  如果要算出不特定個數的參數和﹐那麼就得要用到$argc 這個特殊變數了:
  #!/usr/local/bin/php -q
  
$sum=0;
  for ($t=1;$t  $sum=$sum $argv[$t];
  echo $sum
; ?>
  假設將此程式命名為bigsum.php3﹐則執行bigsum.php3 1 2 3 4 5 按enter 則會印出15﹐執行bigsum.php3 1 2 3 4 5 6 按下enter 則會印出21。
  有時候我們需要在程式執行中輸入資料﹐但是PHP 原本就是用於網頁設計﹐而網頁上的資料輸入自然都是用FORM 的方式來輸入﹐所以這將PHP 作為Shell Script 時問題就來了﹐好在PHP 有提供了開檔功能﹐而在Linux/Uinx 之下﹐輸入(input)這件事原本就可以用開檔的方式來完成﹐我們要開啟的是/dev/stdin 這個設備檔(stdin 是表示standard input 的意思)﹐程式如下:
  #!/usr/local/bin/php -q
  
  $fp=fopen("/dev/stdin","r ");
  $inputstr=fgets($fp,100);
  fclose($fp);

  echo "n--------------- -------n";
  echo $inputstr;
  ?>
  其中的fgets($fp,100) 是指從$fp 這個檔案(也就是"/dev/stdin" )中讀取出100 個byte 的資料﹐程式執行到這行便會停下來等待我們的輸入﹐當我們輸入完按下enter 之後﹐程式就會將剛才我們輸入的資料給印出來了。
  進階使用II
  雖然已經可以處理輸入﹐但是這樣的功能顯然還是太簡單﹐無法應付更大的應用﹐比如說我需要一個功能是將一串資料流(data stream)中的HTML 給予去除﹐這時需要完整處理輸出輸入轉向的能力﹐我們可以先設計程序如下:
  #!/usr/local/bin/php -q
  
  $fp= fopen("/dev/stdin","r");

  while(!feof($fp)) {
  $c=fgetc($fp);
  $inputstr=$inputstr .$c;
  };

  fclose($fp);

  echo $inputstr;
  ?> 你直接執行這個程式﹐它會一直等你輸入﹐直到你按下Ctrl D 後才會將你的輸入資料給印出﹐我們可以這麼執行它:
  more filt.php3 | filt.php3
  這樣的做法是將filt.php3 這個程式用more 給秀出並轉向給filt.php3 這個程式﹐filt.php3 會不斷接受資料(事實上就是filt.php3 程式碼本身)﹐最後將其印出。
  我們可以在其中加上過濾HTML 的功能:
  #!/usr/local/bin/php -q
  
  $fp=fopen("/dev/stdin"," r");

  while(!feof($fp)) {
  $c=fgetc($fp);
  $inputstr=$inputstr.$c;
; 🎜>
  fclose($fp);

  $inputstr=ereg_replace("]*)>","",$inputstr);

  ?>
  假設將此程式命名為filt2.php3﹐如此一來便完成了過濾功能﹐不信請拿個HTML 檔來試試看:
  more xxx.html | filt2.php3
  你便會看到刪除了HTML TAG 的檔案了。
  結論
  PHP 拿來當Shell Script 事實上相當地好用﹐原因是PHP 本身很好學﹐而且它又支持了各種數據庫﹐當你已經經常拿PHP 來設計你的網站之後﹐絕對不太喜歡再使用其它的Shell Script 語言來處理其它必須非網頁的部份﹐這時候拿PHP 來當做Shell Script 的好處就會顯現出來了﹐你可以以一貫的方式來發展整個系統﹐而不必一下要用PHP一下再用Perl/Python 或是C。
  國內的PHP 風氣已經相當興盛﹐本站LinuxFab 便是完全以PHP 搭配MySQL 發展起來的﹐事實上PHP 的妙用還有很多歡迎﹐有機會日後再介紹﹐如果讀者們需要PHP 的相關信息﹐歡迎到本站上的PHP 論壇參與更多討論。 (出處:Viphot)

http://www.bkjia.com/PHPjc/314161.html

truehttp: //www.bkjia.com/PHPjc/314161.htmlTechArticlePHP 怎麼這麼紅最近PHP(Personal Hypertext Preprocessor) 似乎已經成了這一兩年來Linux/Unix 上最廣為大家所使用的網頁處理語言﹐它的方便、強大功...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

倉庫:如何復興隊友
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

CakePHP 專案配置 CakePHP 專案配置 Sep 10, 2024 pm 05:25 PM

在本章中,我們將了解CakePHP中的環境變數、常規配置、資料庫配置和電子郵件配置。

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

CakePHP 日期和時間 CakePHP 日期和時間 Sep 10, 2024 pm 05:27 PM

為了在 cakephp4 中處理日期和時間,我們將使用可用的 FrozenTime 類別。

CakePHP 檔案上傳 CakePHP 檔案上傳 Sep 10, 2024 pm 05:27 PM

為了進行文件上傳,我們將使用表單助理。這是文件上傳的範例。

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

在本章中,我們將學習以下與路由相關的主題?

討論 CakePHP 討論 CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP 是 PHP 的開源框架。它旨在使應用程式的開發、部署和維護變得更加容易。 CakePHP 基於類似 MVC 的架構,功能強大且易於掌握。模型、視圖和控制器 gu

CakePHP 建立驗證器 CakePHP 建立驗證器 Sep 10, 2024 pm 05:26 PM

可以透過在控制器中新增以下兩行來建立驗證器。

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

See all articles