从命令行执行php和从Http Side执行php之间的区别

Som*_*one 12 php

从命令行执行php和从HTTP执行php有什么区别?他们使用相同的可执行文件,如(php.exe或php-cgi.exe(Apache或IIS))吗?从命令行或HTTP执行时结果是否不同?

Bob*_*ger 6

错误中没有html标记
这是一个php.ini设置(html_errors),但在cli版本中默认为off.

记录到stderr
通常会将错误记录到webservers error.log中,但在cli版本中会将错误写入stderr.
这也可以作为php.ini设置(error_log)

php.ini
用于cli版本的php.ini文件可以是不同的文件.这可能导致一些讨厌的错误(卷曲突然不可用,等).

不同的可执行文件
有可能安装PHP的多个版本(PHP5 PHP4旁边)
使用which php,以确定您所使用的版本.

一切都显示为文本
var_dump()是可读的,<pre>
没有header('Hello');和之间没有区别echo('Hello');


web*_*ave 2

无论 PHP 是通过 Web 服务器模块还是 CLI 调用,都使用相同的二进制库(但有时可以配置为使用不同的 ini,这会影响脚本)。它的环境也会不同,因此环境变量不会准确。

PHP 还知道它的调用方式不同,并将调整其输出以适应这种情况(即,phpinfo();通过 CLI 调用时输出的格式会有所不同)。