2009-12-30 83 views
0

有誰知道如何在Yii框架中使用自定義命令讀取stdin?如何從yii命令讀取stdin

我正忙於編寫腳本來處理通過php腳本傳入的郵件,但也需要Yii框架內的功能。默認情況下,當您擴展CConsoleCommand時,Yii將變量中的命令行參數傳遞給run()方法。有任何想法嗎?

回答

0

好吧,這將是有趣的,我知道,但在發佈我的問題後,我也想通了。

對於那些使用超級酷的Yii框架的人,並且想要做這樣的事情,以下是你將如何去做這件事。

在您的公共run()方法只是添加以下內容:

$fd = fopen("php://stdin", "r"); 
$content = ""; 
while (!feof($fd)){ 
    $content .= fread($fd, 1024); 
} 
fclose($fd); 

你會再能得到什麼已被髮送/傳輸到在$內容變量的文件。

在這個塊之後添加的任何代碼都會在stdin被捕獲後立即處理。

C「」)

+2

你並不需要打開標準輸入,PHP的CLI SAPI這是否自動爲您,把你得到的相同的「$ fd」放入恆定的STDIN中。 Yii還負責宣佈STDIN。 – Flavius 2010-02-06 20:25:43