9

我正在尝试从终端窗口以交互模式运行 PHP,当我运行命令时

  php -a

它说“启用了交互模式”,但没有向我显示它应该的“php->”提示。我必须按 control z 才能退出交互模式,但我可以在交互模式“启用”时执行任何命令

有谁知道如何解决这一问题

4

3 回答 3

5

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

于 2011-01-29T12:47:31.323 回答
4

有一个解决方案(模拟器)对我来说效果很好:

http://www.fischerlaender.net/php/phpa-norl

于 2011-02-10T21:48:27.787 回答
2

还有另一个出色的解决方案(由 Facebook btw 创建)phpsh

用他们自己的话来说:

phpsh 是 php 的交互式 shell,具有读取行历史记录、制表符补全、快速访问文档的功能。它是在 Facebook 开发的,具有讽刺意味的是,它主要是用 python 编写的。它是开源的,并在修改后的 BSD 许可下发布。

我正在使用它一段时间,它真的很好,在很多方面甚至比 php -a 更好

于 2012-11-10T22:56:36.583 回答