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
$eklenti
= ?
, bool $ayrıntılı
= true
) : arrayKayıtlı yapılandırma seçeneklerinin hepsini değerleriyle döndürür.
eklenti
İsteğe bağlı olarak bir eklenti ismi. Belirtildiği takdirde sadece bu eklentiye özgü yönergeler döndürülür.
ayrıntılı
Ya her ayarın geçerli değeri ya da her ayarın ayrıntılı değerleri
döndürülür. Öntanımlı olan true
değeri ayrıntılı bir çıktı üretir.
Yönerge isimlerinin dizinin anahtarları olduğu bir dizi döner.
ayrıntılı
değiştirgesi 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ı
değiştirgesi false
olduğu takdirde her
elemanın değeri sadece yönergenin geçerli değerini içerecektir.
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.
Sürüm: | Açıklama |
---|---|
5.3.0 |
ayrıntılı değiştirgesi eklendi.
|
Ö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 ... )
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).