但是若要用php來完成同樣的事情時,則未免有些遺憾,沒有現成的系統錯誤輸出及系統輸入函數(像是scanf)可以使用,但是可以利用一些簡單的fopen()、fprintf()及fscanf()的檔案I/O函數來組合成類似的功能。以下為簡單的程式範例:
1).使用fopen()及fscanf()的函數組合出類似scanf()的功能:
<?
/* 判斷STDIN是否已經預先被定義了 */
if(!defined("STDIN")) {
define("STDIN", fopen('php://stdin','r'));
}
/* 透過標準格式化輸出函數將字串印出 */
printf("Please Input some thing:\n");
/* 利用fscanf()的函數來讀取預先定義好的STDIN,並將其直傳入$input的變數中 */
fscanf(STDIN, "%s", $input);
/* 透過標準格式化輸出函數將$input變數的值印出 */
printf("Your input data is \"%s\"\n", $input);
?>
---------------------------------------------------------------------------
2).使用fopen()及fprintf()的函數將訊息列印到標準錯誤輸出:
<?
/* 判斷STDERR是否已經預先被定義了 */
if(!defined("STDERR")) {
define("STDERR", fopen('php://stderr','w'));
}
/* 透過標準格式化輸出函數將字串印出 */
printf("Standard Message Output\n");
/* 利用fprintf()的函數將訊息寫入預先定義好的STDERR */
fprintf(STDERR, "Standard Error Message Output\n");
?>
續待.....
1 則留言:
老劉~~是你ㄝ!!正在找PHP stdin方案,搜到這篇囉~哈哈!!
張貼留言