如何从yii命令读取stdin

时间:2009-12-30 13:52:16

标签: php stdin yii

有没有人知道如何在Yii框架中使用自定义命令读取标准输入?

我正在忙着编写脚本来处理通过php脚本传入的邮件,但也需要来自Yii框架内的功能。默认情况下,当您扩展CConsoleCommand时,Yii会将变量中的命令行参数传递给run()方法。有任何想法吗?

2 个答案:

答案 0 :(得分:0)

好的,我知道这很有趣,但在发布我的问题之后我也明白了。

对于那些使用Super cool Yii框架的人,想要做这样的事情,这就是你要做的事情。

在你的public run()方法中,只需添加以下内容:

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

然后您就可以获得在$ content变量中发送/流式传输到文件的任何内容。

在捕获stdin后,您将在处理此块后添加的任何代码进行处理。

C '',)

答案 1 :(得分:0)

您可以使用CConsoleCommand::promt()接收来自标准输入的输入(此处更多信息http://www.yiiframework.com/doc/api/1.1/CConsoleCommand#prompt-detail