PHP Conference Nagoya 2025

ini_get_all

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

ini_get_allObtiene todas las opciones de configuración

Descripción

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

Devuelve todas las opciones de configuración registradas.

Parámetros

extension

Un nombre de extensión opcional. Si se establece, la función de retornará únicamente opciones específicas para esa extensión.

details

Recupera los detalles de configuración o sólo el valor actual de cada configuración. Por omisión es true (recuperar detalles).

Valores devueltos

Devuelve un array asociativo con el nombre de la directiva como la clave del array.

Cuando el parámetro details es true (por omisión) el array contendrá global_value (establecido en php.ini), local_value (tal vez establecido con ini_set() o .htaccess), y access (el nivel de acceso).

Cuando el parámetro details es false el valor será el valor actual de la opción.

Vea la sección del manual para obtener información sobre lo que significan los niveles de acceso.

Nota:

Es posible que una directiva tenga múltiples niveles de acceso, por lo que el access muestra los valores de máscara de bits adecuado.

Notas

Nota:

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

Historial de cambios

Versión Descripción
5.3.0 Se añadió details.

Ejemplos

Ejemplo #1 ini_get_all() ejemplos

<?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 Disabling details

<?php
print_r
(ini_get_all("pcre", false)); // Se añadió en PHP 5.3.0
print_r(ini_get_all(null, false)); // Se añadió 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
    ...
)

Ver también

add a note

User Contributed Notes 5 notes

up
9
justd@ntmailme
21 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
5 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
8 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
8 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
16 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