2011-01-29 42 views
8

我试图从终端窗口在交互模式下运行PHP,当我运行命令MAC OS PHP intratactive模式没有提示

php -a 

它说:“启用交互模式”,但并没有告诉我它应该的“php->”提示符。我必须按控制Z到离开的交互模式,但同时被“激活”的互动模式,我可以执行任何命令

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

回答

5

PHP的交互的shell需要GNU的readline或libedit被静态编译到PHP二进制文件中。许多发行版仅提供仅包含readline扩展名的共享库。

如果你自己编译PHP做

./configure --with-readline 

./configure --with-libedit 

(请注意,你,也许可以再分发链接的ReadLine PHP二进制文件由于GPL和PHP的许可之间的不兼容,那么你必须使用libedit,但是我怀疑你是否希望自己重新分配PHP本身,用法当然没问题,这对你的基于PHP的应用程序来说并不重要,但这是不起作用的原因之一对于大多数发行...)

编辑:我刚刚提出一个PHP错误,使readline的模式与共享的身材,也或许我找时间来实现它:http://bugs.php.net/bug.php?id=53878

+1

是应该在它们上市的方式或者我能确定不是如果这些安装PHP的信息? – mcgrailm 2011-01-29 12:58:02

2

还有另一种出色的解决方案(由实顺便说一句创建)phpsh

在他们自己的话说:

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

我使用了一段时间,这真的很好,在很多方面甚至比只是PHP的-a