如何以编程方式从php中获取phpinfo()变量?

2022-08-30 22:06:41

我试图在PHP中获取一个可靠(跨请求一致)的“隐藏”常量列表(例如,在大多数情况下,客户端不会知道它,没有黑客)。

我感兴趣的一些事情如下:

  1. ./configure选项。
  2. 我也想要phpinfo中的第一个值。System
  3. 加载的 PHP 模块(如 Apache 部分所示)
  4. PHP 的构建日期。
  5. 已注册的 PHP 流
  6. 已注册的流套接字传输
  7. 已注册的流过滤器

我如何获取phpinfo的一部分或将这些值作为常规字符串获取?请注意,如果包含标记,这并不重要,但我不想解析phpinfo,因为这似乎真的很慢,肯定有更好的方法。


答案 1

给你:

  1. ini_get_all()或者是我能找到的最接近的get_loaded_extensions()
  2. php_uname()
  3. apache_get_modules()
  4. phpversion() 是我能找到的最近的
  5. stream_get_wrappers()
  6. stream_get_transports()
  7. stream_get_filters()

另请参阅以及更多内容get_defined_constants()


正如 Chacha102 所提到的,您还可以使用输出控制函数并解析 :phpinfo()

ob_start();
phpinfo();
$variable = ob_get_contents();
ob_get_clean();

由于它的使用不会弄乱您可能正在使用的其他输出缓冲级别。ob_get_clean()


答案 2

phpinfo() 中提供的大多数内容都可以在常量中找到。尝试查看:

print_r(get_defined_constants());

或者此页面上的函数:http://us.php.net/manual/en/ref.info.php。有大量的函数可以获取有关特定扩展的信息。

以下函数可能值得一看:

ini_get()
http://us.php.net/manual/en/function.ini-get.php http://us.php.net/manual/en/function.getenv.php
http://us.php.net/manual/en/function.get-cfg-var.phpgetenv()get_cfg_var()


推荐