質問

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

  php -a

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

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

役に立ちましたか?

解決

PHPインタラクティブシェルでは、GNU ReadlineまたはLibeditをPHPバイナリに静的にコンパイルする必要があります。多くの分布は、ReadLine拡張機能のみを含む共有ライブラリのみを提供します。

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

./configure --with-readline

また

./configure --with-libedit

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

編集:共有ビルドで読み取りモードを有効にするためにPHPバグを提出したばかりです。 http://bugs.php.net/bug.php?id=53878

他のヒント

私にとって非常にうまく機能するソリューション(エミュレータ)があります:

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

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

彼ら自身の言葉で:

PHPSHは、読み取り履歴、タブの完了、ドキュメントへのクイックアクセスを特徴とするPHP用のインタラクティブなシェルです。 Facebookで開発され、皮肉なことに、主にPythonで書かれています。オープンソースであり、変更されたBSDライセンスの下でリリースされます。

私はしばらくそれを使用しています、そしてそれは本当に良いです、多くの点でPHP -Aよりもさらに良いです

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top