The*_*che 28 php shell interactive
只是想知道,是否可以单独使用PHP创建交互式shell.我的意思是你有数据库,python等.
如果是的话,怎么样?
Wis*_*guy 39
是的,这是可能的.为了实现交互,程序必须能够等待并读入stdin的用户输入.在PHP中,您可以通过打开文件描述符来读取标准输入'php://stdin'.从对不同问题的回答中,这里是PHP中交互式用户提示的示例(当然,从命令行运行时):
echo "Continue? (Y/N) - ";
$stdin = fopen('php://stdin', 'r');
$response = fgetc($stdin);
if ($response != 'Y') {
echo "Aborted.\n";
exit;
}
Run Code Online (Sandbox Code Playgroud)
当然,要获得完整的输入线而不是单个字符,您需要fgets()代替fgetc().根据您的程序/ shell将执行的操作,整个程序可能被构造为一个大的连续循环.希望这能让您了解如何开始.如果你想真正想要(CLI伪GUI),你可以使用ncurses.
dot*_*hen 27
由于已经提出并回答了这个问题,因此PHP中添加了更好的解决方案.在所有最近的PHP版本中,您可以轻松获得用户输入:
$input = fgets(STDIN);
Run Code Online (Sandbox Code Playgroud)
我理解你的问题的方式只是希望PHP解释器在命令行上运行,这样你就可以评估你键入的任何PHP代码.我一直使用Python的这个功能来测试代码片段.在这种情况下,我相信您正在寻找的答案是执行(从命令行):
php -a
Run Code Online (Sandbox Code Playgroud)
假设PHP在您的路径中,这将使您进入PHP解释器,就像我在我的:
$ php -a
Interactive shell
php >
Run Code Online (Sandbox Code Playgroud)
从那里你可以开始评估任意PHP表达式并查看结果:
php > $a = 'abcdef';
php > echo strlen($a);
6
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15213 次 |
| 最近记录: |