我有两个php cli脚本。第一个将数据传输到第二个数据。 我希望第二个提示用户进行确认。 这可能吗?
我正在使用wordpress'php-cli-tools,但我的问题似乎适用于一般的php,从我的基本测试看到的。 (即fgets(),readline等)
我永远无法得到提示工作,因为它看起来总是会读取前一个输入中的EOT字符,即使我已经读过它了......
然后,稍后,当我通过使用fwrite进行输出然后使用fgets()进行输入时,没有任何反应。程序正在等待发生的事情......不确定是什么...... 如果我使用该库,我会收到错误'在输入过程中捕获^ D'。 readline没有运气......
有没有人曾经这样做过?
非常感谢你!
答案 0 :(得分:1)
问题并非真正针对PHP,它适用于任何语言。在Unix上,如果你想忽略输入重定向并直接从终端读取,你可以从/dev/tty
而不是标准输入读取。
function prompt_user($prompt) {
$terminal = fopen("/dev/tty", "r+");
if ($terminal) {
fputs($terminal, $prompt);
return fgets($terminal);
}
}