我最近进入了 PHP CLI 的迷人世界。
然后我在 ubuntu 终端上运行脚本,当我按下箭头键时,它没有移动光标,而是打印了转义码 ^[[A^[[B^[[C^[[D.
如果我使用普通终端,则不会出现问题。所以我猜想在我的脚本中有些东西会阻止正常行为。
有人有什么解决办法吗?
谢谢您的帮助!
编辑:
看起来它是标准输入,我用它来捕捉输入,问题!等待 STDIN 输入时,终端显示错误字符!!我该如何解决这个问题?
我建议将fgets(STDIN)
调用替换readline()
为至少在 Linux 环境中可用的函数。请注意,readline 库不包含在 OS X 中,尽管它可以单独安装。
// $input = fgets(STDIN);
$input = readline('Input: ');
如果您需要行编辑的唯一原因是从拖放文件路径中删除多余的 ´ 字符,则您始终可以从脚本中的字符串中修剪任何多余的字符。
$input = readline('Input: ');
$input = trim($input, '´');