mac os php intratactive模式没有提示

时间:2011-01-29 12:38:36

标签: php macos terminal interactive-mode

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

  php -a

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

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:4)

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

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

答案 2 :(得分:2)

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

用他们自己的话说:

  

phpsh是一个用于php的交互式shell,具有readline历史记录,Tab键完成,快速访问文档。它是在Facebook开发的,具有讽刺意味的是,主要是用python编写的。它是开源的,并在修改后的BSD许可下发布。

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