対話モード
開始
-a
オプションをつけてphp
コマンドを実行する。
php -a
終了
exit
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[vagrant@localhost test]$ php -a Interactive shell php > for ($i = 0; $i < 5; $i++) { php { echo $i . "\n"; php { } 0 1 2 3 4 php > exit [vagrant@localhost test]$ |
日本語が入力できない
phpの対話モードで日本語を入力しようとしたところ、変換候補は表示されるが確定すると消えてしまう。
MySQLでもそのような症状があったが、OSのロケール設定とMySQLの文字コード設定で解決した。
OSのロケールは共通でUTF-8、日本語を含むコードをファイルから実行した場合は問題なく表示される。
原因はわかっていない。
phpコマンドのみの場合
オプション-a
をつけずにphp
コマンドを入力した場合もスクリプト実行ができるが
- プロンプトが表示されない
- Enterを入力しても実行されない
exit
を入力しても終わらないCtrl-C
で抜け出せるが抜けるだけ
1 2 3 4 5 |
$ php echo 'Hello'; exit ^C $ |
PHPマニュアルに”–with-readline オプションつきで PHP をコンパイルした場合に CLI SAPI で対話シェルが使えるようになりました。”とあるが、このオプションなしでコンパイルされている?
対応策
以下の2点。
- PHPの実行タグ
<?php
で始める - 入力終了後に
Ctrl-D
を入力する(Ctrl-D
で入力を終了させる)
1 2 3 4 |
<?php echo "Hello\n"; →この次の行でCtrl-Dを押す Hello →これが実行結果 $ |
1件のコメント