PHPインタープリターで簡単なPHPコードを実行しようとしました。コマンドを実行するphp -a
と、メッセージが表示されます
インタラクティブモードが有効
PHP入力の場所がありません。しかし、コマンドを使用して php コードを実行できますphp -r
。例えば:
php -r "echo 'Hello stackoverflow!';"
こんにちはスタックオーバーフロー!
PHPインタープリターで簡単なPHPコードを実行しようとしました。コマンドを実行するphp -a
と、メッセージが表示されます
インタラクティブモードが有効
PHP入力の場所がありません。しかし、コマンドを使用して php コードを実行できますphp -r
。例えば:
php -r "echo 'Hello stackoverflow!';"
こんにちはスタックオーバーフロー!
これをインストールします:
php5-readline
次に使用してみてください:
php -a
入力php -m
して、readlineモジュールがあることを確認してください。そうしないと使用できなくなります。
http://www.php.net/manual/en/features.commandline.interactive.php
PHP 5.1.0以降、PHPが--with-readlineオプションでコンパイルされている場合、 CLISAPIは-aオプションを使用したインタラクティブシェルを提供し ます。
PHP と libreadline の間にコンパイル/リンク エラーがあるようです。これはPHP Bug #48759に記載されています。
make clean
--configure をいじって、最終ビルドの前に適切に実行しませんでしたか?php -m
readline を有効な機能としてリストしますか? (PHP はオプションでビルドされていますか--with-readline
)インタラクティブモードですが、リードラインモードを使用できない可能性があるため、プロンプトは表示されません。入力を開始するだけで、Enterキーを押した後にコマンドが評価されます。何も起こっていないように見えますが、入力すると、たとえば次のようになります。
<?php
echo "hello world";
?>
...出力が表示されます...
ブレースブロックを入力すると、終了後にEnterキーを押した後に評価されます}
<?php
for ($i = 0; $i < 5; $i++) {
echo $i;
}
// prints 12345 after closing }
で始める必要があることに注意してください<?php
。そうしないと、入力されたものは評価されません。
ベンダーのセキュリティパッチが適用されたPHP5.3.3を実行しているRedHat(RHEL5)システムで、中括弧を閉じてもエコーバックしないインタラクティブモードが発生しました。
代わりに、を押すまで出力バッファはフラッシュされませんでしたCtrld。事実上、これによりインタラクティブセッションが1回限り使用されます。すべてのコード入力を挿入し、Ctrldすべての出力を一度に返します。
各マシンでコンパイルするのに飽きた後、PHPSHを使用しました(joey-adamsが述べたように)
php -a (構文の強調表示とオートコンプリート) よりもはるかに優れています。
python phpsh をインストールする
install-php5-with-readline-support-on-debian-wheezy を見てください
$ sudo apt-get install python # this is necessary to run phpsh
$ cd ~/
$ wget https://github.com/facebook/phpsh/zipball/master
$ unzip phpsh-master.zip
$ cd phpsh-master
$ sudo cp -r src /etc/phpsh # phpsh seems to complain unless it resides at /etc/phpsh
$ sudo ln -s /etc/phpsh/phpsh /usr/bin/phpsh # put phpsh on the $PATH
readline モジュールがインストールされているかどうかを確認するには、次のように入力します。php -m | grep readline
何も表示されない場合は、readline モジュールをインストールします。sudo apt-get install php5-readline
モジュールのインストール後、次のコマンドで対話モードに入るよりも、前のコマンドでその存在を再確認できます。php -a
Mac を使用している場合は、Homebrew ( http://brew.sh ) をインストールしてから、brew install phpsh と入力します。
そして、phpsh を実行して対話型シェルを取得できます。
これはあなたが見るものです:
# php -a
Interactive shell
php > echo 1+1;
2
php > echo PHP_VERSION;
5.3.2-1ubuntu4.14
php > exit
#