9

ターミナル ウィンドウからインタラクティブ モードで PHP を実行しようとしていますが、コマンドを実行すると

  php -a

「インタラクティブモードが有効」と表示されていますが、必要な「php->」プロンプトが表示されません。コントロール z を押してインタラクティブ モードを終了する必要がありますが、インタラクティブ モードが「有効」になっている間は任意のコマンドを実行できます。

誰でもこれを修正する方法を知っていますか

4

3 に答える 3

5

PHP インタラクティブ シェルでは、GNU readline または libedit が PHP バイナリに静的にコンパイルされている必要があります。多くのディストリビューションは、readline 拡張機能のみを含む共有ライブラリのみを提供します。

PHP を自分でコンパイルする場合は、

./configure --with-readline

また

./configure --with-libedit

(おそらく、GPl と PHP ライセンスとの非互換性のため、readline にリンクされた PHP バイナリを再配布することはできないことに注意してください。その場合は libedit を使用する必要がありますが、とにかく PHP 自体を再配布する必要があるとは思えません。使用法は確かに問題ありません。これは、PHP ベースのアプリケーションでは問題になりませんが、ほとんどのディストリビューションでこれが機能しない理由の 1 つです ...)

編集: 共有ビルドで readline モードを有効にするために PHP のバグを報告したところですが、実装する時間があるかもしれません。

于 2011-01-29T12:47:31.323 に答える
4

私にとってはかなりうまくいく解決策(エミュレーター)があります:

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

于 2011-02-10T21:48:27.787 に答える
2

別の優れたソリューションがあります(Facebookによって作成されました)phpsh

彼ら自身の言葉で:

phpsh は、readline 履歴、タブ補完、ドキュメントへのクイック アクセスを備えた php 用の対話型シェルです。これは Facebook で開発されたもので、皮肉なことに、ほとんどが Python で書かれています。これはオープン ソースであり、変更された BSD ライセンスの下でリリースされています。

私はしばらくそれを使用していますが、多くの点で php -a よりもさらに優れています。

于 2012-11-10T22:56:36.583 に答える