我希望这个问题是有道理的 - 可能是我不完全理解发生了什么......但是经过大量的谷歌搜索无济于事之后:
我正在尝试做的是在命令行上执行一个 PHP 文件,php filename.php
并以 HTML 格式获取输出 - 因此它可以显示为网页。目前命令行只是返回没有 HTML 标记的原始文本输出。目前 PHP 文件中唯一的代码行是:<?php phpinfo() ?>
这可能吗?如果不是,MAMP 等如何执行该文件以生成 HTML 输出?
谢谢!
我希望这个问题是有道理的 - 可能是我不完全理解发生了什么......但是经过大量的谷歌搜索无济于事之后:
我正在尝试做的是在命令行上执行一个 PHP 文件,php filename.php
并以 HTML 格式获取输出 - 因此它可以显示为网页。目前命令行只是返回没有 HTML 标记的原始文本输出。目前 PHP 文件中唯一的代码行是:<?php phpinfo() ?>
这可能吗?如果不是,MAMP 等如何执行该文件以生成 HTML 输出?
谢谢!
如果您使用 php-cgi 而不是 CLI 中的 php,您的程序将像在网络服务器上运行一样运行。它无法访问 $_SERVER、$_POST、$_GET 等中的任何内容,但它会导致 phpinfo() 生成 HTML 而不是纯文本。
phpinfo()函数足够聪明,可以识别请求来自哪里,如果它来自 CLI,那么它不会返回 html,但是当请求来自apache时,它将它与 html 合并并发送输出。
这里列出了一个示例,用于将 phpinfo() 的 cli 原始输出转换为 html,但我没有尝试过。
HTML 是包含具有特殊含义的字符序列的文本(例如 ASCII)输出。
做这样的事情
php filename.php > webpage.html
然后webpage.html
用浏览器查看。
至于函数phpinfo()
,我不太确定产生输出需要哪些环境/全局变量。
phpinfo()
如果从命令行执行,则不会输出 HTML。然而,在命令行中执行时,HTML 将作为文本返回。
HTML 只是文本。它没有什么特别之处。
<?php
echo '<p>this is html, you'll want the header, body tags, and content.';
?>
您必须生成 HTML,而不是 MAMP、LAMP 或其他任何人。你运行程序,程序产生它的输出。所以如果你想看HTML,只要吐出HTML。
其中phpinfo.php包含:
<?php phpinfo();
从控制台生成phpinfo()输出的 HTML 文件:
php-cgi phpinfo.php > phpinfo.html
如果您希望从控制台执行时输出包含 HTML,重要的是使用php-cgi而不是php 。