ini_get_all

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

ini_get_allObtém todas as opções de configuração

Descrição

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

Retorna todas as opções de configuração cadastradas.

Parâmetros

extension

Um nome de extensão opcional. Se diferente de null ou igual à string core, a função retorna apenas opções específicas para aquela extensão.

details

Recupera configurações detalhadas ou apenas o valor atual de cada configuração. O padrão é true (recuperar detalhes).

Valor Retornado

Retorna um array associativo com o nome da diretiva como chave do array. Retorna false e gera um erro de nível E_WARNING se a extensão informada em extension não existir.

Quando details for true (padrão) o array conterá global_value (definido no php.ini), local_value (talvez definido com ini_set() ou .htaccess) e access (o nível de acesso).

Quando details for false o valor será o atual da opção.

Consulte a seção do manual para informação sobre o que siginificam os níveis de acesso.

Nota:

É possível que uma diretiva tenha múltiplos níveis de acesso, e é por isso que access mostra os valores apropriados da máscara de bits.

Exemplos

Exemplo #1 Exemplos de ini_get_all()

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

O exemplo acima produzirá algo semelhante 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
        )

    ...

)

Exemplo #2 Desabilitandos details

<?php
print_r
(ini_get_all("pcre", false)); // Adicionado no PHP 5.3.0
print_r(ini_get_all(null, false)); // Adicionado no PHP 5.3.0
?>

O exemplo acima produzirá algo semelhante 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 opções ini de "array" como, por exemplo, pdo.dsn.*.

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 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) <?phpforeach (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