ini_get_all

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ini_get_allLee todos los valores de configuración

Descripción

ini_get_all(?string $extension = null, bool $details = true): array|false

Devuelve todas las valores de configuración.

Parámetros

extension

Un nombre de extensión, opcional. Si no es null o diferente de la string core, esta función devolverá únicamente las opciones específicas de esta extensión.

details

Obtiene los detalles, o únicamente el valor actual de cada configuración. Por omisión, vale true (obtiene los detalles).

Valores devueltos

Devuelve un array asociativo cuyas claves son los nombres de las directivas. Devuelve false y genera un error de nivel E_WARNING si la extension no existe.

Cuando el argumento details vale true (por defecto), el array contendrá los valores global_value (definidos en el archivo php.ini), local_value (definido eventualmente con la función ini_set() o mediante un .htaccess), y access (el grado de acceso).

Cuando el argumento details vale false, el valor será el valor actual de la opción.

Ver el manual para más información sobre el significado del grado de acceso.

Nota:

Es posible que una directiva tenga varios grados de acceso, y por eso access muestra los valores del máscara apropiados.

Ejemplos

Ejemplo #1 Ejemplo con ini_get_all()

<?php
print_r
(ini_get_all("pcre"));
print_r(ini_get_all());
?>

El resultado del ejemplo sería algo similar a:

Array
(
    [pcre.backtrack_limit] => Array
        (
            [global_value] => 100000
            [local_value] => 100000
            [access] => 7
        )

    [pcre.recursion_limit] => Array
        (
            [global_value] => 100000
            [local_value] => 100000
            [access] => 7
        )

)
Array
(
    [allow_call_time_pass_reference] => Array
        (
            [global_value] => 0
            [local_value] => 0
            [access] => 6
        )

    [allow_url_fopen] => Array
        (
            [global_value] => 1
            [local_value] => 1
            [access] => 4
        )

    ...

)

Ejemplo #2 Desactiva el argumento details

<?php
print_r
(ini_get_all("pcre", false)); // Añadido en PHP 5.3.0
print_r(ini_get_all(null, false)); // Añadido en PHP 5.3.0
?>

El resultado del ejemplo sería algo similar a:

Array
(
    [pcre.backtrack_limit] => 100000
    [pcre.recursion_limit] => 100000
)
Array
(
    [allow_call_time_pass_reference] => 0
    [allow_url_fopen] => 1
    ...
)

Notas

Nota:

ini_get_all() ignora las opciones ini "array" tales como pdo.dsn.*.

Ver también

add a note

User Contributed Notes 5 notes

up
9
justd@ntmailme
22 years ago
I guess the third entry is the required access level (to change this variable at runtime):

Constant Value Meaning
PHP_INI_USER 1 Entry can be set in user scripts
PHP_INI_PERDIR 2 Entry can be set in php.ini, .htaccess or httpd.conf
PHP_INI_SYSTEM 4 Entry can be set in php.ini or httpd.conf
PHP_INI_ALL 7 Entry can be set anywhere

See also the docs for ini_set()

Hugo.
up
2
Julien MOREAU aka PixEye
6 years ago
If you want to load and parse your own ini file, have a look at parse_ini_file() function. Example:

<?php
// ...
$my_data = parse_ini_file($my_file, true);
up
2
pmdumuid at gmail dot com
9 years ago
echo recreate_php_ini();

/**
* Sample function to re-create a php ini config file.
*
* @return string
*/
function recreate_php_ini() {
$a = ini_get_all();

$data = [];
foreach (array_keys($a) as $k) {
$ss = split("\.", $k);
if (count($ss) == 1) {
$sec = "PHP";
$v = $k;
} else {
$sec = $ss[0];
$v = $ss[1];
}
$data[$sec][$v] = $a[$k]['global_value'];
}
ksort($data);
$out = "";
foreach ($data as $sec => $data) {
$out .= "[$sec]\n";
ksort($data);
foreach ($data as $k => $v) {
if (is_numeric($v)) {
$out .= sprintf("%-40s = %s\n", $k, $v);
} else {
$out .= sprintf("%-40s = \"%s\"\n", $k, $v);
}
}
$out .= "\n";
}
return $out;
}
up
-4
peter at peteraba dot com
9 years ago
You can use the following snippet on servers to grab the live/staging configs in order to be able to replicate those in your development environment. (I use `php -a` for this)
<?php
foreach (ini_get_all(null, false) as $key => $value) echo "$key=$value;\n";
?>
up
-6
root at mantoru dot de
17 years ago
Since a certain PHP version (I think it's 5.2.5) it is no longer possible to override INI entrys set with php_admin_* in httpd.conf. The access level will be set to 4 (PHP_INI_SYSTEM), which is also returned by this function.

The constants mentioned below are available in PHP, but without the prefix (e.g. INI_USER, INI_PERDIR).
To Top