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