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);
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
ini_get_all — Tüm yapılandırma yönergelerini döndürür
Kayıtlı yapılandırma seçeneklerinin hepsini değerleriyle döndürür.
Yönerge isimlerinin dizinin anahtarları olduğu bir dizi döner.
eklenti
bağımsız değişkeni atlanmışsa false
döner ve
E_WARNING
seviyesinde bir hata oluşur.
ayrıntılı
bağımsız değişkeni true
(öntanımlı) olduğu
takdirde dizinin her elemanı, anahtarları global_value
(php.ini'de atanmış değer), local_value
(ini_set() veya .htaccess üzerinden atanmış değer), ve
access
(erişim seviyesi) olan bir alt dizi içerir.
ayrıntılı
bağımsız değişkeni false
olduğu takdirde her
elemanın değeri sadece yönergenin geçerli değerini içerecektir.
Bkz. Yapılandırma ayarlarının yeri
Bilginize:
Bir yönergenin,
access
anahtarı altında bir bit maskesi değeri olarak çok sayıda erişim seviyesine sahip olması mümkündür.
Örnek 1 - ini_get_all() örnekleri
<?php
print_r(ini_get_all("pcre"));
print_r(ini_get_all());
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
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 ) ... )
Örnek 2 - Ayrıntısız listeleme
<?php
print_r(ini_get_all("pcre", false)); // PHP 5.3.0'dan itibaren
print_r(ini_get_all(null, false)); // PHP 5.3.0'dan itibaren
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
Array ( [pcre.backtrack_limit] => 100000 [pcre.recursion_limit] => 100000 ) Array ( [allow_call_time_pass_reference] => 0 [allow_url_fopen] => 1 ... )
Bilginize:
ini_get_all() işlevi pdo.dsn.* gibi "dizi" ini yönergelerini yok sayar.
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);
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.
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;
}
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";
?>
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).