命令行PHP:混合fread(STDIN,...)和fgets(STDIN)的问题

时间:2015-08-13 14:41:11

标签: php stream command-line-interface stdin

我正在使用命令行脚本,使用fread(对于是/否,...)和fgets(用于手动验证值,...)。

问题是如果我输入的不仅仅是...字符(\ n也是字符串),这个字符已经在下一个fgets / fread-function中输入了。

我试过fflush(STDIN),但它没有用。我也试过stream_get_line(STDIN,1024);这是一个人在一个简短的问题中推荐的,但后来我必须输入几乎无情的多个字符,直到程序继续(我退出)。

如何在使用fgets / fread之前让PHP删除键盘缓冲区?

1 个答案:

答案 0 :(得分:0)

如果您的PHP使用 Readline 模块进行编译(这很常见),您可以使用readline()

http://php.net/manual/en/function.readline.php

$input = readline( 'Prompt: ' );

readline()简化了从终端读取输入的过程。