mac os php intratactive mode has no prompt

笑着哭i 提交于 2019-12-04 00:32:27

问题


I'm trying to run PHP in interactive mode from the terminal window and when i run the command

  php -a

it says "Interactive mode enabled" but does not show me the "php->" prompt that it should. I have to press control z to get out of interactive mode but I can execute any commands while interactive mode is "enabled"

Does anyone know how to fix this


回答1:


The PHP interactive shell requires that GNU readline or libedit is compiled statically into the PHP binary. Many distributions only provide shared libraries containing only the readline extension.

If you compile PHP yourself do

./configure --with-readline

or

./configure --with-libedit

(note that you, probably, may not redistribute PHP binaries linked to readline due to incompatibilities between GPl and the PHP license, you'd have to use libedit then, but I doubt you want to redistribute PHP itself anyways. Usage is certainly ok. This doesn't matter for your PHP-base applications. But this is one of the reasons why this doesn't work for most distros ...)

Edit: I just filed a PHP bug to enable readline mode with a shared build, too, maybe i find time to implement it: http://bugs.php.net/bug.php?id=53878




回答2:


There is a solution (emulator) which works pretty well for me:

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




回答3:


There is another excellent solution (created by Facebook btw) phpsh

In their own words:

phpsh is an interactive shell for php that features readline history, tab completion, quick access to documentation. It was developed at Facebook and ironically, is written mostly in python. It is open source and released under a modified BSD license.

I'm using it for a while and it's really good, in many ways even better than just php -a



来源:https://stackoverflow.com/questions/4836915/mac-os-php-intratactive-mode-has-no-prompt

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!