PHP交互式Shell和使用echo时无换行符

4

我已经使用 --with-readline 选项编译了 PHP,成功获取了交互式 shell。但是,我遇到了一个令人烦恼的问题:当我使用 echo 命令时,echo 命令并不会打印换行符,也就是说:

****@****-PC ~ $ php -a
Interactive mode enabled

php > echo 1+2;
3php > echo "Hello World!";
Hello World!php >

问题出在哪里?我该如何解决它? 因为在这里查看此处,它会打印一个新行。

1
字符串后没有换行符。 - Royal Bg
这是 PHP 的某些版本已知的 bug(https://bugs.php.net/bug.php?id=55496)。如果您运行 php -v,请问您使用的是哪个版本? - Anthony
1个回答

5
如果您想强制交互模式始终输出换行符,您可以在启动时将其声明为这样:
php -dcli.prompt="\nphp> " -a

(或者调整php.ini文件)

“-dcli.prompt” 究竟是做什么用的? - zer0uno
@HaRsH - 如果PHP版本存在缺陷并且不能自动将提示强制换行,则这是一种解决方法。值得注意的是,OP描述的是一个符合预期行为的错误,并且交互式shell未设计为强制用户手动添加任何单行输出的换行符。 - Anthony
1
我该如何编辑 php.ini 文件?使用 dcli.prompt="\nphp> " -a 命令行参数吗?我尝试了 locate php.ini 命令,但是我应该尝试 /etc/php5/php.ini 吗? - Brady Trainor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接