php -a代表开启交互模式

需要注意的是,Interactive Shell 和 Interactive Mode 并不是一个东西,尽管名称和功能都很相似。

如果你输入php -a,得到的回应是‘Interactive Shell’并跟随着php>提示符,那你使用的就是交互式shell。如果你得到的回应是Interactive mode enabled,说明你的PHP并不支持交互式shell,上面介绍的用法也不实用于你。

但也不用担心,Interactive mode(交互模式)也可以在命令行窗口里执行PHP代码,只是代码的执行方式有些区别。在PHP交互模式(Interactive mode)里,你在命令行窗口里输入PHP代码,代码不会立即执行,当你输入了所有PHP代码后,输入Ctrl-Z(windows里),或输入Ctrl-D(linux里),你输入的所有代码将会一次执行完成并输出结果。

在PHP交互模式(Interactive mode)里,跟交互式shell里不一样,你的代码需要以<?php开头,跟你的普通PHP文件里的写法一致。下面是在Windows里的使用例子。

1
2
3
4
5
6
7
8
C:\>php -a
Interactive mode enabled

<?php
echo "Hello, world!";
?>
^Z
Hello, world!

在Windows里,没有交互式shell,只有Interactive mode。

在我恩自己的kali里确实不支持,那就安装readline扩展

1
2
3
4
5
6
7
8
9
root@kali:/var/www/html/CTF/RoarCTF2019/Easy_Calc# php
<?php
echo "ADSAD";
?>
ADSADroot@kali:/var/www/html/CTF/RoarCTF2019/Easy_Calc# php -a
Interactive mode enabled

php >

如何使用PHP的交互式运行环境(Interactive shell)

交互模式的开启

php readline安装