ターミナル ウィンドウからインタラクティブ モードで PHP を実行しようとしていますが、コマンドを実行すると
php -a
「インタラクティブモードが有効」と表示されていますが、必要な「php->」プロンプトが表示されません。コントロール z を押してインタラクティブ モードを終了する必要がありますが、インタラクティブ モードが「有効」になっている間は任意のコマンドを実行できます。
誰でもこれを修正する方法を知っていますか
ターミナル ウィンドウからインタラクティブ モードで 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 つです ...)
編集: 共有ビルドで readline モードを有効にするために PHP のバグを報告したところですが、実装する時間があるかもしれません。
私にとってはかなりうまくいく解決策(エミュレーター)があります:
別の優れたソリューションがあります(Facebookによって作成されました)phpsh
彼ら自身の言葉で:
phpsh は、readline 履歴、タブ補完、ドキュメントへのクイック アクセスを備えた php 用の対話型シェルです。これは Facebook で開発されたもので、皮肉なことに、ほとんどが Python で書かれています。これはオープン ソースであり、変更された BSD ライセンスの下でリリースされています。
私はしばらくそれを使用していますが、多くの点で php -a よりもさらに優れています。