我有一个关于 php-cli 的问题。
我正在使用这个:
define("STDIN", fopen('php://stdin','r'));
$input = "";
while($input == "") {
echo "Please enter : ";
$input = fread(STDIN, 80);
}
问题是:
如果我输入超过 80 个字符,比如 100 个,那么 20 个额外字符将添加到下一个字符中。
如何在每次输入之前“清除”STDIN?
将length
的参数设置fread()
为更高的值(即 1024、2048、10000) - 它确定读取的数据的最大fread()
长度。如果您只需要最多 80 个字符,请在阅读后检查并substr()
在需要时缩短使用。STDIN
如果您使用( docs ),则不需要打开输入流,这是推荐的,因为在处理php://stdin
高达 PHP 5.2.1 ( docs ) 时存在错误。
$input = "";
while($input == "") {
echo "Please enter : ";
$input = fread(STDIN, 10000);
}
还要记住STDIN
, STDOUT
,STDERR
是已经定义的系统常数。您不应将这些名称用于您自己的常量。