星期三, 十二月 27, 2006
用 PHP 寫 Command-Line Script(CLI)
用 PHP 來寫一般 Script 很簡單, 只要直接寫, 再用 PHP 去執行即可, 但是寫 Command-Line Script(CLI - Command-Line Interface) 當然要用用 STDIN, STDOUT, STDERR 囉(用此做做互動)~
詳細文件可見: PHP: Using PHP from the command line - Manual
上述文件的資料算是蠻多的, 有人整理出比較常用的方法, 就如下 Link, 以下的範例大多參考自: Control your scripts with command-line PHP.
再來就依下述五點來寫:
- 安裝 PHP CLI
- CLI 版 Hello World
- 標準輸入 STDIN, 標準輸出 STDOUT, 標準錯誤輸出 STDERR
- argv, argc 參數接收
- PHP 預設常用參數
1. 安裝 PHP CLI
apt-get install php5-cli (或 php4-cli)
2. CLI 版 Hello World (記得 chmod +x)
#!/usr/bin/php
<?php echo 'Hello World!'; ?>
3. STDIN, STDOUT, STDERR
- STDIN: The standard input device
- STDOUT: The standard output device
- STDERR: The standard error device
範例:
<?php
// 透過 標準輸出 印出要詢問的內容
fwrite(STDOUT, "Enter your name: ");
// 抓取 標準輸入 的 內容
$name = trim(fgets(STDIN));
// 將剛剛輸入的內容, 送到 標準輸出
fwrite(STDOUT, "Hello, $name!");
?>
執行即會如下:
Enter your name: Jon
Hello, Jon!
4. argv, argc 參數接收
- argv: 參數值, 會存成 array 型態( argv[0, 1....] )
- argc: 參數總數, 數字(int)型態
範例: arg.php
#!/usr/bin/php
<?php echo print_r($argv); echo 'argc: ' . $argc; ?>
執行結果:
./arg.php chocolate 276 'killer tie, dude!'
Array
(
[0] => b.php
[1] => chocolate
[2] => 276
[3] => killer tie, dude!
)
argc: 4
注意: 轉載文章的此範例有錯誤, 特別是最後一個參數, 要用 單引號"'" 括起來, 不然 "!" 這個會有錯誤產生.
5. PHP 預設常用參數(更多詳細可見 PHP Manual)
- -a: Run interactively (直譯模式)
- -c path: Read php.ini file from path
- -n: Run without reading php.ini
- -m: 列出現在有載入哪些 Modules
- -i: Display information about the PHP build
- -l: 測試看看 Script 是否有錯誤
- -s: 將 Script 的 Keyword 標出彩色(HTML)
- -w: Display source code after stripping comments
- -h: Display help
範例:
php -a (任何命令都直接輸出, 想成類同 python 就是了)
Interactive mode enabled
<?php
echo time();
1167140419
echo 2+2;
4
exit;
即跳出回 shell.
發表迴響
PS: 若無法留言, 請先確認是否有打開 JavaScript, 造成您的困擾, 實在萬分對不起 Orz...(如果無法留言, 勞煩可以發信給我好嗎? 謝謝.)
PS2: 若您的留言被誤判, 我都會再自行看過, 不需要一直重覆張貼~
PS2: 若您的留言被誤判, 我都會再自行看過, 不需要一直重覆張貼~





