我试图在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中,CLI SAPI提供使用-a选项,如果PHP与--with-readline的选项编译交互的shell。
似乎有你的PHP和libreadline之间的编译/链接错误。 这是在记录PHP错误#48759 。
make clean
您的最终版本之前? php -m
表的readline为启用功能? (PHP是否建有选项--with-readline
) 之后我累了编译它,我用PHPSH每台机器上的(如乔伊 - 亚当斯提到)
这是更好然后PHP -a(语法高亮和自动完成)
安装Python phpsh
看看安装-PHP5与- readline的支持上,Debian的喘息
$ 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模式。 你刚才只需要开始打字,和你的命令将被评估按Enter键后。 它看起来并不像什么是怎么回事,但如果输入,例如:
<?php
echo "hello world";
?>
......你会得到输出...
如果输入外撑块,它们会评估你按回车键闭幕后后}
<?php
for ($i = 0; $i < 5; $i++) {
echo $i;
}
// prints 12345 after closing }
请注意,您必须以<?php
或任何进入将不会被评估。
在运行该厂商的安全补丁5.3.3 PHP在Red Hat(RHEL5)系统,我也遇到过这并没有回显以下结束括号交互模式。
相反,输出缓冲区没有刷新,直到我按下Ctrl键 d。 实际上,这使得交互式会话一次性使用。 插入所有代码输入, 按Ctrl d来一次返回所有输出。
要检查是否已经安装的readline模块,类型: php -m | grep readline
php -m | grep readline
如果没有显示,安装的readline模块: sudo apt-get install php5-readline
模块安装完成后,你可以重新检查它与先前的命令存在,比进入交互模式: php -a
由于没有安装模块的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的交互的shell:
$ php -a
Interactive shell
php >
如果您使用的是Mac,然后安装自制( http://brew.sh )然后键入:冲泡安装phpsh
然后你就可以运行phpsh得到一个交互的shell。
这是你应该看到:
# php -a
Interactive shell
php > echo 1+1;
2
php > echo PHP_VERSION;
5.3.2-1ubuntu4.14
php > exit
#