我正在尝试从终端窗口以交互模式运行 PHP,当我运行命令时
php -a
它说“启用了交互模式”,但没有向我显示它应该的“php->”提示。我必须按 control z 才能退出交互模式,但我可以在交互模式“启用”时执行任何命令
有谁知道如何解决这一问题
我正在尝试从终端窗口以交互模式运行 PHP,当我运行命令时
php -a
它说“启用了交互模式”,但没有向我显示它应该的“php->”提示。我必须按 control z 才能退出交互模式,但我可以在交互模式“启用”时执行任何命令
有谁知道如何解决这一问题
PHP 交互式 shell 要求将 GNU readline 或 libedit 静态编译到 PHP 二进制文件中。许多发行版仅提供仅包含 readline 扩展的共享库。
如果你自己编译 PHP 做
./configure --with-readline
或者
./configure --with-libedit
(请注意,由于 GPl 和 PHP 许可证之间的不兼容,您可能不会重新分发链接到 readline 的 PHP 二进制文件,那么您必须使用 libedit,但我怀疑您是否想重新分发 PHP 本身。使用肯定没问题。这对您的基于 PHP 的应用程序无关紧要。但这就是为什么这对大多数发行版不起作用的原因之一......)
编辑:我刚刚提交了一个 PHP 错误以启用共享构建的 readline 模式,也许我有时间实现它:http ://bugs.php.net/bug.php?id=53878
有一个解决方案(模拟器)对我来说效果很好:
还有另一个出色的解决方案(由 Facebook btw 创建)phpsh
用他们自己的话来说:
phpsh 是 php 的交互式 shell,具有读取行历史记录、制表符补全、快速访问文档的功能。它是在 Facebook 开发的,具有讽刺意味的是,它主要是用 python 编写的。它是开源的,并在修改后的 BSD 许可下发布。
我正在使用它一段时间,它真的很好,在很多方面甚至比 php -a 更好