我试图在php解释器中执行简单的PHP代码。
当我执行命令php -a
时,我收到了消息
启用交互模式
没有任何PHP输入的地方。
但我可以通过命令php -r
执行php代码。
例如:
php -r "echo 'Hello stackoverflow!';"
Hello stackoverflow!
答案 0 :(得分:33)
安装:
php5-readline
然后尝试使用:
php -a
答案 1 :(得分:6)
输入php -m
并确保您拥有readline模块。如果不这样做,你将无法使用它。
http://www.php.net/manual/en/features.commandline.interactive.php
从PHP 5.1.0开始,CLI SAPI使用提供的交互式shell 如果使用 - with-readline 选项编译PHP,则选择 -a 选项。
答案 2 :(得分:4)
您的PHP和libreadline之间似乎存在编译/链接错误。这在PHP Bug #48759中有记录。
make clean
?php -m
是否将readline列为启用功能? (PHP是使用选项--with-readline
)答案 3 :(得分:2)
您处于交互模式,但没有提示,因为您可能没有可用的readline模式。您只需要开始输入,按Enter键后将评估您的命令。看起来似乎没有任何事情发生,但如果你输入,例如:
<?php
echo "hello world";
?>
......你会得到输出......
如果您输入支撑块,则在关闭}
<?php
for ($i = 0; $i < 5; $i++) {
echo $i;
}
// prints 12345 after closing }
请注意,您必须以<?php
开头,否则输入的内容将不会被评估。
在运行供应商的安全补丁PHP 5.3.3的Red Hat(RHEL5)系统上,我遇到了一种交互模式,在关闭括号后没有回复。
相反,在按 Ctrl d 之前,输出缓冲区没有刷新。实际上,这使得交互式会话一次性使用。插入所有代码输入,然后 Ctrl d 一次返回所有输出。
答案 4 :(得分:2)
在我厌倦了在每台机器上编译后,我使用了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
答案 5 :(得分:1)
要检查是否安装了readline模块,请键入:php -m | grep readline
如果未显示任何内容,请安装readline模块:sudo apt-get install php5-readline
模块安装完成后,您可以使用上一个命令重新检查它是否存在,而不是进入交互模式:php -a
答案 6 :(得分:1)
因为未安装模块 readline 。 http://php.net/manual/en/features.commandline.interactive.php
这是我通过重新编译php源代码来安装模块的方法:
查找以前的配置命令:
$ php -i | grep configure
Configure Command => './configure' '--prefix=/usr/local/php7' ...
然后重新编译:
./configure --prefix=/usr/local/php7 \
--with-readline \
...
$ make clean
$ make
$ make test
$ sudo make install
检查是否安装了 readline 模块:
$ php m | grep readline
readline
然后启动php Interactive shell:
$ php -a
Interactive shell
php >
答案 7 :(得分:0)
如果您使用的是Mac,请安装Homebrew(http://brew.sh),然后输入: brew install phpsh
然后你可以运行phpsh来获得一个交互式shell。
答案 8 :(得分:-3)
这是你应该看到的:
# php -a
Interactive shell
php > echo 1+1;
2
php > echo PHP_VERSION;
5.3.2-1ubuntu4.14
php > exit
#