如何以编程方式从php获取phpinfo()变量? [英] How to get phpinfo() variables from php programmatically?
问题描述
我正在尝试获取PHP中隐藏"常量的可靠列表(跨请求一致)(例如,在大多数情况下,如果不进行黑客攻击,客户端将不了解该常量).
I am attempting to get a list of dependable(consistent across requests) list of "hidden" constants in PHP(as in, the client-side won't know about it in most cases without hacking).
我感兴趣的一些东西如下:
Some of the things I am interested in is the following:
-
./configure
选项. - 我还想要phpinfo中的第一个
System
值. - 已加载的PHP模块(如Apache部分所示)
- PHP的构建日期.
- 注册的PHP流
- 已注册的流套接字传输
- 已注册的流过滤器
./configure
options.- I would also like the very first
System
value in phpinfo. - The loaded PHP modules(as shown in the Apache section)
- The build date of PHP.
- Registered PHP streams
- Registered stream socket transports
- Registered stream filters
如何只获取一部分phpinfo或将这些值作为常规字符串获取?请注意,是否包含标记并不重要,但是我不想解析phpinfo,因为这似乎真的很慢,而且肯定有更好的方法.
How can I get either just a portion of the phpinfo or get these values as a regular string? Note that it doesn't matter if there if markup included, but I don't want to parse the phpinfo as that just seems really slow and surely there is a better way..
推荐答案
在这里:
-
ini_get_all()
或get_loaded_extensions()
是我能找到的最接近的 -
php_uname()
-
apache_get_modules()
-
phpversion()
是我能找到的最接近的 -
stream_get_wrappers()
-
stream_get_transports()
-
stream_get_filters()
ini_get_all()
orget_loaded_extensions()
were the closest I could findphp_uname()
apache_get_modules()
phpversion()
was the closest I could findstream_get_wrappers()
stream_get_transports()
stream_get_filters()
另请参见get_defined_constants()
和更多.
正如Chacha102所述,您还可以使用输出控制功能并解析phpinfo()
:
As Chacha102 mentioned you can also use output control functions and parse the phpinfo()
:
ob_start();
phpinfo();
$variable = ob_get_contents();
ob_get_clean();
由于使用ob_get_clean()
,它不会弄乱您可能正在使用的其他输出缓冲级别.
Due to the use of ob_get_clean()
it won't mess up other output buffering levels you may be using.
这篇关于如何以编程方式从php获取phpinfo()变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!