gpt4 book ai didi

stdin - 如何在新输入之前清除 php STDIN?

转载 作者:可可西里 更新时间:2023-10-31 23:32:47 31 4
gpt4 key购买 nike

我有一个关于 php-cli 的新问题。

我正在使用这个:

define("STDIN", fopen('php://stdin','r'));
$input = "";
while($input == "") {
echo "Please enter : ";
$input = fread(STDIN, 80);
}

问题是:

如果我输入的字符超过 80 个,比如 100 个,则多余的 20 个字符会添加到下一个字符中。

如何在每次输入前“清除”STDIN?

最佳答案

fread()length 参数设置为更高的值(即 1024、2048、10000)- 它决定读取数据的最大长度通过 fread()。如果您最多只需要 80 个字符,则在阅读后检查并在需要时使用 substr() 进行缩短。如果您使用 STDIN ( docs ),则不需要打开输入流,这是由于 PHP 5.2 之前处理 php://stdin 时的错误而推荐的.1 ( docs ).

$input = "";
while($input == "") {
echo "Please enter : ";
$input = fread(STDIN, 10000);
}

还要记住 STDINSTDOUTSTDERR 是已经定义的系统常量。您不应将这些名称用于您自己的常量。

关于stdin - 如何在新输入之前清除 php STDIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13489128/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com