terminal - 箭头键在 php CLI 脚本中不起作用 |编辑: STDIN involved

标签 terminal stdin php

我最近进入了 PHP CLI 的迷人世界。

然后我在 ubuntu 终端上运行该脚本,当我按下箭头键时,它没有移动光标,而是打印了转义码 ^[[A^[[B^[[C^[[D]。

如果我使用普通终端,则不会出现问题。所以我猜想我的脚本中有些东西阻止了正常行为。

有人有解决办法吗?

感谢您的帮助!

编辑:

看起来是 STDIN,我用它来捕获输入,问题所在!当等待 STDIN 输入时,终端显示错误的字符! 我该如何解决这个问题?

最佳答案

我建议将 fgets(STDIN) 调用替换为 readline()功能,至少在 Linux 环境中可用。请注意,尽管可以单独安装 readline 库,但 OS X 中并未附带该库。

// $input = fgets(STDIN);
$input = readline('Input: ');

如果您需要行编辑的唯一原因是从拖放文件路径中删除多余的 ´ 字符,则您始终可以从脚本中的字符串中删除任何多余的字符。

$input = readline('Input: ');
$input = trim($input, '´');

关于terminal - 箭头键在 php CLI 脚本中不起作用 |编辑: STDIN involved,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10747104/

相关文章:

C - Feof(stdin)-如何在 Windows 中指示输入结束?

c - 使用 FIFO(名称管道)重定向标准输入

php - 在 WordPress 中返回当前 URL

python - conda 激活不工作 : no any reaction

python - 使用 sys.stdin 中的先前输入进行提示

php - 如何使用 composer 安装 PHPWord 库

PHP 必须先保存 JSON 字符串并再次打开它,才能使用它

python - 同时使用 input() 和 print() (就像在聊天中一样)

Python 3 - Pipenv 无法安装出现错误

linux - 主从的目的和 fork 过程