【问题标题】:How to execute in PHP interactive mode如何在 PHP 交互模式下执行
【发布时间】:2013-06-27 19:50:44
【问题描述】:

我是 PHP 新手,我只想在命令提示符下运行 PHP(交互模式)。

所以我输入了这个代码:

`php -v`
`<?php`
`echo 7;`
`?>`

但我不知道如何执行它,因为当我按下 Enter 时,cmd 期望我继续编写代码。我在 php.net 和其他一些论坛上进行了搜索,但没有找到任何东西。那么有没有功能键什么的可以显示结果呢?

【问题讨论】:

  • 我也尝试过这样做。答案在Manual 的第一个代码中。简而言之,您必须使用 --with-readline 选项编译 php。该评论还说您输入 php -m 并查看其中是否有 readline。在 Windows 机器上,没有。

标签: php command-line


【解决方案1】:

如果使用 Ctrl + D 执行您的命令不起作用,则您可能没有 Interactive Shell (显然在每一行之后都会给出输入)。这需要使用特殊选项编译php。但是如果php -a 说interactive mode,你可以直接输入,然后在文件末尾发送Ctrl + Z。

php -a
interactive mode enabled

<?php
echo "hello there world!";
phpinfo();
?>
^Z

(点击回车)

hello there world!
phpinfo....

PHP comments 中的 cmets 中有更多信息。

【讨论】:

  • 您使用的是什么操作系统? Ctrl+Z 使用 Linux Mint 立即退出
  • @kurdtpage CTRL+Z 应该暂停,而不是退出。尝试运行jobs、bg 和fg。
【解决方案2】:

Ctrl+d 将触发文件结束条件并导致脚本被执行。

另见How does the interactive php shell work?

Interactive Shell 和 Interactive Mode 不是一回事,尽管 相似的名称和功能。

如果你输入 php -a 并得到“Interactive Shell”的响应,然后是 php> 提示符,那么你就有了可用的交互式 shell(PHP 编译时带有 readline 支持)。相反,如果您收到以下回复 “启用交互模式”,您没有交互式外壳 可用,本文不适用于您。

因此,如果您仅获得“启用交互模式”,那么您将只能 能够输入 PHP 代码,然后当你完成后,向 PHP 发送一个 EOF 到 执行它。

“EOF”表示“文件结束”。

【讨论】:

  • 没有 EOF 这样的字符。 EOT(传输结束)用 Ctrl + D 发送; ETX(文本结尾)使用 Ctrl + C 发送。More.
猜你喜欢
  • 2012-02-20
  • 1970-01-01
  • 2016-06-14
  • 2022-06-30
  • 1970-01-01
  • 2011-06-23
  • 1970-01-01
  • 2011-06-05
  • 1970-01-01
相关资源
最近更新 更多