したがって、インタラクティブコンソールはシンプルで非常に便利です。 履歴とオートコンプリート。
ただし、3つの質問と2つの問題があります。
1)ウィンドウ。 Windowsにはreadlineはなく、それぞれオートコンプリートはありません。 標準入力のみ。 彼のために、ラッパーは書かれていますが、残念ながら色のESCシーケンスは機能しません(ただし、修正する必要があります)。
2)readline + libedit / libreadline。 (できれば、むしろ)インストールする必要があります。 最後のライブラリが既に所有している場合(そうでない場合は、emerge libeditコマンドを使用してインストールします)、 readline php拡張をビルドする必要があります。 これは次のように行われます:cd php-5.xx / ext / readline && phpize && ./configure && make && make install
3)私は個人的にlibeditを設定しなければなりませんでした。 ファイル〜/ .editrcはこのように見えます:
bind "^R" em-inc-search-prev
bind "^[O5C" vi-next-word
bind "^[O5D" vi-prev-word
bind "^[[1~" ed-move-to-beg
bind "^[[4~" ed-move-to-end
bind "^[[3~" ed-delete-next-char
次に問題について。 1つ目は、eval内のコードは解析エラーで制御できるが、致命的なエラーでは制御できないことです。 したがって、致命的なエラーが発生すると、コンソール全体がクラッシュします。 公平に言えば、致命的なエラーが発生したのは数回だけで、ほとんどのエラーは通知エラーまたは解析エラーです。
2番目の問題は、曲線補完ライン拡張です。これは、オートコンプリート機能からの「オプションなし」という回答を受け入れません。 私はそれを克服できませんでした、そして今、文字を入力せずにすぐにまたはスペースの後にTabを押すと、ファイルのリストが表示され、これが時々干渉します。
しかし、全体として、このようなコンソールは非常に便利です。
ソースはGoogleコード上にあります 。
PS(退屈している人向け):
for ($i='a';$i<='z';$i++) echo $i.' ';
printsの文字列
for ($i='a';$i<='z';$i++) echo $i.' ';
?