有誰知道如何在Yii框架中使用自定義命令讀取stdin?如何從yii命令讀取stdin
我正忙於編寫腳本來處理通過php腳本傳入的郵件,但也需要Yii框架內的功能。默認情況下,當您擴展CConsoleCommand時,Yii將變量中的命令行參數傳遞給run()方法。有任何想法嗎?
有誰知道如何在Yii框架中使用自定義命令讀取stdin?如何從yii命令讀取stdin
我正忙於編寫腳本來處理通過php腳本傳入的郵件,但也需要Yii框架內的功能。默認情況下,當您擴展CConsoleCommand時,Yii將變量中的命令行參數傳遞給run()方法。有任何想法嗎?
好吧,這將是有趣的,我知道,但在發佈我的問題後,我也想通了。
對於那些使用超級酷的Yii框架的人,並且想要做這樣的事情,以下是你將如何去做這件事。
在您的公共run()方法只是添加以下內容:
$fd = fopen("php://stdin", "r");
$content = "";
while (!feof($fd)){
$content .= fread($fd, 1024);
}
fclose($fd);
你會再能得到什麼已被髮送/傳輸到在$內容變量的文件。
在這個塊之後添加的任何代碼都會在stdin被捕獲後立即處理。
C「」)
您可以使用CConsoleCommand::promt()
從標準輸入接收輸入(這裏http://www.yiiframework.com/doc/api/1.1/CConsoleCommand#prompt-detail更多信息)
你並不需要打開標準輸入,PHP的CLI SAPI這是否自動爲您,把你得到的相同的「$ fd」放入恆定的STDIN中。 Yii還負責宣佈STDIN。 – Flavius 2010-02-06 20:25:43