2013年8月27日 星期二

[PHP] CLI的使用

php可以達到在UNIX系統中那樣使用命令行來達成script的功能嗎?
答案是可以的!

這是官網的詳細說明 http://www.php.net/manual/en/features.commandline.php

簡單來說,需要用到這三個指令
STDIN(標準輸入)、STDOUT(標準輸出)及STDERR(標準錯誤輸出)



使用範例如下:

STDIN
An already opened stream to stdin. This saves opening it with
<?php
$stdin 
fopen('php://stdin''r');?>
If you want to read single line from stdin, you can use
<?php
$line 
trim(fgets(STDIN)); // reads one line from STDIN 

fscanf(STDIN"%d\n"$number); // reads number from STDIN?>
STDOUT
An already opened stream to stdout. This saves opening it with
<?php
$stdout 
fopen('php://stdout''w');?>
STDERR
An already opened stream to stderr. This saves opening it with
<?php
$stderr 
fopen('php://stderr''w');?>



以下轉載自:http://blog.longwin.com.tw/2006/12/php_command_line_script_2006/

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
注意: 轉載文章的此範例有錯誤, 特別是最後一個參數, 要用 單引號"'" 括起來, 不然 "!" 這個會有錯誤產生.

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.

沒有留言:

張貼留言

Google Analytics初學者入門簡介