PHP 8.1.15 Released!


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

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


ini_get_all(string $extension = ?): array

Retorna todas as opções de configuração como uma matriz associativa. Se o parâmetro opcional extension estiver definido, apenas as opções especificas para esta extensão serão retornadas.

A matriz retornada usa o nome da diretiva como chave da matriz sendo os os elementos global_value (definidos no php.ini), local_value (talvez definidos com ini_set() ou .htaccess), e access (o nível de acesso). Veja a seção do manual sobre mudanças de configuração para informações sobre o que são os níveis.


É possível para uma diretiva ter múltiplos níveis de acesso, por isso access mostra os valores apropriados como um valor bitmask.

Exemplo #1 Exemplo ini_get_all()

= ini_get_all();



Parte da saída se parece com:

    [allow_call_time_pass_reference] => Array
        [global_value] => 1
        [local_value] => 1
        [access] => 6
    [allow_url_fopen] => Array
        [global_value] => 1
        [local_value] => 1
        [access] => 7



Veja também: ini_get(), ini_restore(), ini_set(), get_loaded_extensions() e phpinfo().

add a note

User Contributed Notes 5 notes

20 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()

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

// ...
$my_data = parse_ini_file($my_file, true);
pmdumuid at gmail dot com
6 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'];
    $out = "";
    foreach ($data as $sec => $data) {
        $out .= "[$sec]\n";
        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;
peter at peteraba dot com
7 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)
foreach (ini_get_all(null, false) as $key => $value) echo "$key=$value;\n";
root at mantoru dot de
15 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