是否有适用于windows的简单php shell?
是否有适用于windows的命令行php shell?我正在寻找类似于python shell的东西,它将允许我打开并立即开始执行代码。有用于PHP的windows命令行:看看是否使用是否有适用于windows的简单php shell?,php,windows,command-line,Php,Windows,Command Line,是否有适用于windows的命令行php shell?我正在寻找类似于python shell的东西,它将允许我打开并立即开始执行代码。有用于PHP的windows命令行:看看是否使用-a参数运行PHP.exe,或者可能是项目。有-这不太好,但是仍然比php-a好得多。(另外,安装非常简单,只需运行pear安装即可http://jan.kneschke.de/assets/2007/2/17/PHP_Shell-0.3.1.tgz)也有,但我还没有试过。试试这个: <?php $fh =
-a
参数运行PHP.exe,或者可能是项目。有-这不太好,但是仍然比php-a好得多。(另外,安装非常简单,只需运行pear安装即可http://jan.kneschke.de/assets/2007/2/17/PHP_Shell-0.3.1.tgz
)也有,但我还没有试过。试试这个:
<?php
$fh = fopen('php://stdin', 'r');
$cmd = '';
$bcLvl = 0;
while (true)
{
$line = rtrim(fgets($fh));
$bcLvl += substr_count($line, '{') - substr_count($line, '}');
$cmd.= $line;
if ($bcLvl > 0 or substr($cmd, -1) !== ';')
continue;
eval($cmd);
$cmd = '';
}
按CTRL+C键退出。可能已应答-请阅读此处: 我想我找到了最简单的方法,因为我对使用自己很感兴趣:)
我从这里和其他一些论坛/页面尝试所有选项。。。Windows无法使用readline。我在github上也找到了这两个:
- ubermuda/PHPInteractiveShell
- d11wtq/boris·非窗户
- 是我最近见过的最好的REPL shell。选项卡完成、phpdoc支持、正确的命名空间处理、交互式调试、插件支持等等。它是纯PHP,并且具有composer支持,因此应该很容易在Windows上安装。我只在Linux上试过,但看看代码,它似乎甚至在没有readline的操作系统上有一些历史支持。另一个简单的变体,受其他答案的影响。创建并运行以下cmd脚本:
@echo off
:loop
php.exe -r "while (true) { eval (fgets (STDIN) ); echo PHP_EOL; }"
goto loop
立即执行,Ctrl+C表示退出。在“php.exe”之前插入正确的路径。@Pavle Predic的答案()在Windows上适用于我
但是我想在任何地方使用shell.php
文件,因此我的解决方案是:
shell.php
保存在php安装目录中(或您喜欢的其他位置),例如C:\Program Files\php-5.6.12-Win32-VC11-x64\shell.php
shell.php
,值:“C:\Program Files\php-5.6.12-Win32-VC11-x64”
php%shell.php%
它在windows下的行为如何类似于python shell?我认为与OP要求的交互(键入)方式相比,它的支持方式确实有所不同。我尝试运行
php-a
,但它没有按我预期的方式运行。我没有收到任何类型的提示(除了说明“Interactive mode enabled”(已启用交互模式),并且简单的回显“hello world”
不会产生任何类型的输出。请参见此处的第一个用户提供的说明,以获取示例:python shell在ENTER
not onCTRL+Z
上执行IIRC,然后按ENTER
。您可能可以使用自动热键之类的工具(例如,在SHIFT+ENTER
)创建一个键盘makro,然后重新启动php-a
@hakre,是的。它不会完全像python,但至少它是交互式的。很好的说明。我想这是最接近本机PHP的。phpsh似乎是我想要的,但我似乎无法在windows上运行它。当我运行python setup.py build
时,我得到了名称错误:名称“\uuu init\uuuuu”没有定义
@ewok,我也很难让phpsh在windows上工作。我已经对python代码进行了黑客攻击,试图让它正常工作,它肯定是为linux编写的。使用了很多linux/unix特定的操作系统方法。由于我了解python,我正在考虑分叉项目以使其对windows友好。@jlafay如果/当您启动并运行该项目时,请告诉我。@ewok,我很可能不记得回到这里并发表评论让您知道,因此最好在github上“观看”分叉,以便您可以收到通知。你找到解决方法了吗?请在这里发布答案,而不是答案的链接。你的意思是制造口是心非吗?链接不再有效。如果你使用Linux,boris是一个很好的shell。我不得不评论“重启电脑”--你真的需要这么做是非常罕见的。
@echo off
:loop
php.exe -r "while (true) { eval (fgets (STDIN) ); echo PHP_EOL; }"
goto loop