在Windows上没有来自PHP交互的输出

Bal*_*ave 17 php command-line-interface windows-7 output

我在Win 7机器上从xampp(5.4.7)以交互方式运行php,无法从窗口获取任何输出.我搜索了各种解决方案,到目前为止没有任何工作.下面是一个示例:C:\ xampp> php -v PHP 5.4.7(cli)(内置:2012年9月12日23:48:31)版权所有(c)1997-2012 PHP Group Zend Engine v2.4.0,版权所有(c )1998-2012 Zend Technologies

C:\xampp>php -a
Interactive mode enabled

<?
echo "hi";
printf "hi";
fwrite (STDOUT, "hi");
Run Code Online (Sandbox Code Playgroud)

任何其他想法???

我也试过php -an并在php.ini中设置output_buffing Off,都无济于事.

基本上我的目标主要是将它用作php表达式的测试平台以及运行一些本地脚本.

Mr.*_*.Oz 13

输入后输入的第一行php -a与您的输入略有不同:

<?php          //press Enter
echo 'This ';  //press Enter
echo 'works';  //press Enter
//Press Ctrl+z on this line to get a ^Z, then press Enter
This works
C:\Windows\System32>
Run Code Online (Sandbox Code Playgroud)

可恶的是,它返回到Windows命令提示符,你必须保持打字的php -a<?PHP之前你可以输入更多.

为了保存一些输入,我创建了一个快捷方式,右键单击它,打开它的属性对话框并在目标文本框中输入以下命令:

C:\ Windows\System32\cmd.exe/k"php -a"

此快捷方式以交互方式打开PHP提示.或者,这个以交互模式启动并列出PHP开关:

C:\ Windows\System32\cmd.exe/k"php -h&php -a"


Wes*_*eyE 9

Interactive mode一样的Interactive shell.后者接受cmd中的命令或linux中的shell.第一个读取整个脚本,然后返回输出.如果你CTRL-Z在片段的末尾点击它应该返回输出.

点击此处:http://php.net/manual/en/features.commandline.interactive.php了解更多信息(特别是第一条评论).

  • 如果您有**交互模式**,请确保在开头输入 `&lt;?php` (2认同)

chr*_*riv 7

如果您启动"php -a"并看到" 启用交互模式 "而不是"交互式shell ",那么您的php副本可能在没有readline支持的情况下编译,并且没有交互式shell.

据我所知,PHP的Windows副本都是在没有readline支持的情况下编译的.这使得"-a"选项在Windows中毫无价值(至少对我而言).

"php -a"应该像这样工作(在这种情况下从php的linux副本输出):

$ php -a
Interactive shell

php > echo 5+8;
13
php > exit
$
Run Code Online (Sandbox Code Playgroud)

Windows的PHP副本中的"php -a"不是一个交互式shell,因此有效地工作就像不使用"-a"选项一样.使用F6或CTRL + Z键入EOF字符以完成脚本(显示为^ Z):

C:\>php -a
Interactive mode enabled

<?php
echo 5+8;
?>
^Z
13
C:\>
Run Code Online (Sandbox Code Playgroud)

不要使用"-a",你会得到基本相同的结果(减去文本"启用交互模式":

C:\>php
<?php
echo 5+8;
?>
^Z
13
C:\>
Run Code Online (Sandbox Code Playgroud)

如果您使用"php -a"并获取文本"启用交互模式"并且没有得到cli.prompt的输出(通常是"php>"),那么您应该检查您的php版本(使用"php -v" )确保它至少是5.1,并且你的php模块(带有"php -m")确保列出了"readline"模块.