2010-01-15 18 views
11

Estoy intentando obtener una lista de constantes (constantes a través de las solicitudes) de constantes "ocultas" en PHP (como en, el lado del cliente no lo sabrá en la mayoría de los casos sin piratear).¿Cómo obtener las variables phpinfo() de php programáticamente?

Algunas de las cosas que me interesa es la siguiente:

  1. ./configure opciones.
  2. También me gustaría el primer valor de System en phpinfo.
  3. Los módulos de PHP cargados (como se muestra en la sección de Apache)
  4. La fecha de compilación de PHP.
  5. PHP registrada arroyos
  6. toma de corriente registrada transporta
  7. filtros de secuencia registrados

¿Cómo puedo obtener ya sea sólo una parte de la phpinfo o conseguir estos valores como una cadena normal? Tenga en cuenta que no importa si hay marcado incluido, pero no quiero analizar el phpinfo, ya que parece realmente lento y seguramente hay una mejor manera ...

Respuesta

18

Aquí van:

  1. ini_get_all() o get_loaded_extensions()eran lo más cercano que pude encontrar
  2. php_uname()
  3. apache_get_modules()
  4. phpversion()era el más cercano que pude encontrar
  5. stream_get_wrappers()
  6. stream_get_transports()
  7. stream_get_filters()

Consulte también get_defined_constants() y some more.


Como Chacha102 menciona también puede utilizar las funciones de control de salida y analizar el phpinfo():

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

Debido a la utilización de ob_get_clean() no va a estropear otros niveles de almacenamiento intermedio del resultado que pueda estar usando.

+0

Creo que 'PHP_VERSION' es una constante que también funcionaría. –

+0

Sí, pero prefiero usar la función. =) –

+0

Te apuesto a que la constante es más rápida que la función. Por otra parte, las microptimizaciones son estúpidas de todos modos. –

5

La mayoría de las cosas disponibles de phpinfo () se puede encontrar en constantes. Trate de mirar a través de:

print_r(get_defined_constants()); 

O las funciones de esta página: http://us.php.net/manual/en/ref.info.php. Hay muchas funciones para obtener información sobre extensiones específicas.

Las siguientes funciones podrían ser digno de mirar:

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

+0

Bueno, yo no quiero Sin embargo, arruine el buffer de salida porque puedo usarlo en el futuro para las páginas reales. – Earlz

+0

Se puede anidar el Buffer de Salida. Esa línea de código no arruinará nada si implementa algo en el futuro. –

+0

@ Chacha102: 'ob_end_clean()' desactivará el almacenamiento en búfer de salida (se necesita otra llamada a 'ob_start()'). –

0

Tal vez soy un poco tarde, pero, básicamente, si se llama a un script de shell problemáticamente a la php.exe

php -i 

entonces usted puede analizar toda la información necesaria

Cuestiones relacionadas