2009-12-30 79 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