【问题标题】:Backspace causes entire line to clear after user input退格会导致用户输入后清除整行
【发布时间】:2020-06-12 17:45:59
【问题描述】:

当我输出到控制台然后使用 readline() 等待用户输入时,如下所示:

<?php

fwrite(STDOUT, 'Would you like some apple pie? [y/N]');
readline();

并且用户首先输入了一些响应(例如,他们输入错误并输入了“T”),但尚未按回车键,如果用户想要通过按退格键直到整个响应消失来更正该响应,则整个行被清除。这有点刺耳,而且似乎没有必要(因为其他命令似乎很好,用户在按 enter 之前清除任何输入)。

有没有办法防止我错过的这种情况发生?

【问题讨论】:

    标签: php terminal command-line-interface


    【解决方案1】:

    readline 函数接受一个参数,该参数允许您询问用户并避免清除行。

    <?php
    
    $answer = readline('Would you like some apple pie? [y/N]');
    

    更多信息可以参考readline的文档。

    【讨论】:

    • 谢谢,我从来没有考虑过,这很有意义!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 2011-11-30
    相关资源
    最近更新 更多