phpinfo()之间的区别是什么;那么php-i呢?

phpinfo()之间的区别是什么;那么php-i呢?,php,phpinfo,Php,Phpinfo,在DDG上搜索,在这里没有得到任何有趣的结果。我听说它们不同,但我想知道是什么使它们不同,以及拥有两种不同的配置有什么好处 EDIT:是的,我正在从CLI运行它们。phpinfo()是一种语言函数,它将显示其输出,而不管在其中执行的脚本是通过web SAPI还是从CLI调用的 php-i纯粹是一个命令行开关,用于从命令行获取有关php的信息 为什么web sapi和CLI的配置不同?因为你可能有不同的要求;开发人员通常会运行很长的命令行脚本,并且不希望应用web sapi超时,与内存设置类似;而

在DDG上搜索,在这里没有得到任何有趣的结果。我听说它们不同,但我想知道是什么使它们不同,以及拥有两种不同的配置有什么好处

EDIT:是的,我正在从CLI运行它们。

phpinfo()
是一种语言函数,它将显示其输出,而不管在其中执行的脚本是通过web SAPI还是从CLI调用的

php-i
纯粹是一个命令行开关,用于从命令行获取有关php的信息


为什么web sapi和CLI的配置不同?因为你可能有不同的要求;开发人员通常会运行很长的命令行脚本,并且不希望应用web sapi超时,与内存设置类似;而最大文件大小/post大小ini设置对于CLI来说毫无意义,那么,当它们仅用于web时,为什么还要麻烦将它们放在CLI ini文件中呢?

php-i
提供了与使用
phpinfo()
获得的信息相同的信息,但是

  • 可以使用与web服务器不同的INI文件集(因此可以为某些配置参数设置不同的值)
  • 它以控制台友好的方式格式化数据(例如,没有html标记)
编辑: 不要挖掘源代码,但我敢打赌两者都使用相同的代码来提取信息。。换句话说,php-i是以控制台感知的方式和上下文“调用
phpinfo()

根据您的服务器发行版,可能会有单独的php.ini 用于命令行和web服务器的文件

资料来源:

Pro-PHP 模式、框架、测试等 凯文·麦克阿瑟


一个是php命令,另一个是二进制文件的参数。如果您是通过浏览器获取信息的,您永远不会运行
php-i
。在您的终端中,两者都将返回相同的内容,但如果在浏览器中运行,
phpinfo
将格式化为HTML。您是从CLI运行它们吗?@toomanyredirects是的。显然,
$\u服务器[“PHP\u SELF”]
$\u服务器[“SCRIPT\u NAME”]
都是
-
如果通过
phpinfo
运行,则两者都是
-
,而通过
PHP-i
运行则是空字符串。“它以控制台友好的方式格式化数据”-phpinfo可以。。这是不同的;)