首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP Shell Script 模式應用:命令列參數、標準輸入輸出與管線處理

     編輯:PHP 相關知識

為什麼用 PHP 寫 Shell Script?

PHP 語法簡單、功能豐富(字串、資料庫、網路、圖形處理),且編譯為獨立執行檔後,可脫離 Apache 直接在命令列執行,適合系統管理、資料處理等自動化腳本。

編譯獨立執行檔

tar zxvf php-3.0.xx.tar.gz
cd php
./configure
make
# 產出 php 執行檔,複製至 /usr/local/bin
strip php  # 精簡體積

第一支程式:Hello World

#!/usr/local/bin/php -q
<?php
echo "Hello, world!\n";
?>
  • -q:抑制 HTTP Header 輸出(Shell 模式必加)。
  • 存檔後 chmod +x filename 賦予執行權限。

處理命令列參數

  • $argc:參數個數(含腳本名稱)。
  • $argv[]:參數陣列($argv[0] 為腳本名)。
<?php
$sum = 0;
for ($i = 1; $i < $argc; $i++) $sum += $argv[$i];
echo $sum;
?>

執行 ./sum.php 1 2 3 輸出 6。

讀取標準輸入 (stdin)

Linux/Unix 視 stdin 為裝置檔 /dev/stdin,可用檔案函數讀取:

<?php
$fp = fopen('/dev/stdin', 'r');
$input = fgets($fp, 100);
fclose($fp);
echo "-------------------------\n$input";
?>

管線處理與過濾 HTML 範例

<?php
$fp = fopen('/dev/stdin', 'r');
while (!feof($fp)) {
    $c = fgetc($fp);
    $input .= $c;
}
fclose($fp);

// 過濾 HTML 標籤
$input = ereg_replace('<[^>]*>', '', $input);
echo $input;
?>

用法:more script.php | ./filter.php,將程式碼本身透過管線傳入並過濾標籤後輸出。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved