3

我希望这个问题是有道理的 - 可能是我不完全理解发生了什么......但是经过大量的谷歌搜索无济于事之后:

我正在尝试做的是在命令行上执行一个 PHP 文件,php filename.php并以 HTML 格式获取输出 - 因此它可以显示为网页。目前命令行只是返回没有 HTML 标记的原始文本输出。目前 PHP 文件中唯一的代码行是:<?php phpinfo() ?>

这可能吗?如果不是,MAMP 等如何执行该文件以生成 HTML 输出?

谢谢!

4

7 回答 7

7

如果您使用 php-cgi 而不是 CLI 中的 php,您的程序将像在网络服务器上运行一样运行。它无法访问 $_SERVER、$_POST、$_GET 等中的任何内容,但它会导致 phpinfo() 生成 HTML 而不是纯文本。

于 2015-05-03T01:15:21.387 回答
2

phpinfo()函数足够聪明,可以识别请求来自哪里,如果它来自 CLI,那么它不会返回 html,但是当请求来自apache时,它​​将它与 html 合并并发送输出。

这里列出了一个示例,用于将 phpinfo() 的 cli 原始输出转换为 html,但我没有尝试过。

于 2012-11-23T11:39:56.460 回答
2

HTML 是包含具有特殊含义的字符序列的文本(例如 ASCII)输出。

做这样的事情

php filename.php > webpage.html

然后webpage.html用浏览器查看。

至于函数phpinfo(),我不太确定产生输出需要哪些环境/全局变量。

于 2012-11-23T11:36:31.130 回答
1

phpinfo()如果从命令行执行,则不会输出 HTML。然而,在命令行中执行时,HTML 将作为文本返回。

于 2012-11-23T11:34:43.937 回答
1

HTML 只是文本。它没有什么特别之处。

<?php
  echo '<p>this is html, you'll want the header, body tags, and content.';
?>
于 2012-11-23T11:34:45.563 回答
0

您必须生成 HTML,而不是 MAMP、LAMP 或其他任何人。你运行程序,程序产生它的输出。所以如果你想看HTML,只要吐出HTML。

于 2012-11-23T11:34:29.870 回答
0

其中phpinfo.php包含:

<?php phpinfo();

从控制台生成phpinfo()输出的 HTML 文件:

php-cgi phpinfo.php > phpinfo.html

如果您希望从控制台执行时输出包含 HTML,重要的是使用php-cgi而不是php 。

于 2018-01-10T13:40:50.827 回答