【发布时间】:2016-08-08 15:10:45
【问题描述】:
似乎是一项非常简单的任务,但我很难确定通过标准输入向 PHP [5.5.x] 提供的输入的结束。 fgets(STDIN) 似乎决定停止等待没有可识别信号的输入,而不是传递 0x04 EOT 字符来限制最终字符串。最明显的演示就是通过代码:
<?php
while(substr(rtrim(fgets(STDIN), PHP_EOL), -1) != 0x04) {
echo "Input received.";
}
在 Ctrl+D 之后,循环立即收紧并重复“收到输入”。溢出到标准输出而不是检测 EOT 或等待进一步的输入。这是为什么呢?
【问题讨论】: