【问题标题】:mac os php intratactive mode has no promptmac os php intratactive模式没有提示
【发布时间】:2011-06-17 17:44:34
【问题描述】:

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

  php -a

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

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

【问题讨论】:

    标签: php macos terminal interactive-mode


    【解决方案1】:

    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

    【讨论】:

    • 有没有一种方法可以确定它们是否已安装在 php info 中?
    • 如果安装了phpinfo会列出readline。您也可以查看php -m。要查看它是否是静态的,请尝试运行php -nm。如果列出了“readline”,它应该可以工作。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      用他们自己的话来说:

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

      我用了一段时间,真的很好,在很多方面甚至比php -a还要好

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多