(PHP 4, PHP 5, PHP 7)
parse_ini_file — Bir yapılandırma dosyasını çözümler
$dosyaismi
[, bool $bölümleri_işle
= false
[, int $tarama_kipi
= INI_SCANNER_NORMAL
]] ) : array
parse_ini_file() işlevi dosyaismi
ile belirtilen yapılandırma dosyasını yükler ve içindeki ayarları bir
ilişkisel dizi içinde döndürür.
Belirtilen dosyanın yapısı php.ini dosyasının yapısıyla aynı olmalıdır.
dosyaismi
Çözümlenecek yapılandırma dosyası.
bölümleri_işle
Bu değiştirgeye TRUE
atanırsa bölüm isimlerini ve içerdikleri
ayarları içeren çok boyutlu bir dizi döner. Değiştirgenin öntanımlı
değeri FALSE
'tır.
tarama_kipi
Değeri INI_SCANNER_NORMAL
(öntanımlıdır) veya
INI_SCANNER_RAW
olabilir. Eğer
INI_SCANNER_RAW
belirtilirse seçenek değerleri
çözümlenmez.
Başarısızlık durumunda FALSE
aksi takdirde ayarları bir ilişkisel dizi
içinde döndürür.
Sürüm: | Açıklama |
---|---|
5.3.0 |
İsteğe bağlı tarama_kipi değiştirgesi eklendi.
|
5.2.7 |
Sözdizimi hatasında boş bir dizi yerine FALSE döndürülmeye başlandı.
|
5.2.4 | Sayılardan oluşan anahtarlar ve bölüm isimleri artık PHP tamsayıları olarak değerlendirilmeye başlanmıştır. Bu bakımdan 0 ile başlayanlar sekizlik, 0x ile başlayanlar onaltılık tabanda değerlendirilir. |
5.0.0 | Çift tırnak içine alınmış değerler satırsonu karakterleri içerebilir. |
4.2.1 |
Bu işlev safe_mode ve open_basedir
yönergelerinden etkilenir olmuştur.
|
Örnek 1 - misal.ini içeriği
; Bu bir yapılandırma dosyası örneğidir. ; php.ini içinde ';' ile başlayan satırlar açıklamadır. [ilk_bölüm] bir = 1 yedi = 7 hayvan = AT [ikinci_bölüm] yol = "/usr/local/bin" URL = "http://localhost/~kullanici" [üçüncü_bölüm] phpversion[] = "5.0" phpversion[] = "5.1" phpversion[] = "5.2" phpversion[] = "5.3"
Örnek 2 - parse_ini_file() örneği
INI dosyası içinde sabitler de çözümlenebilir, bu bakımdan parse_ini_file() işlevini çalıştırmadan önce bir sabiti bir ini değeri olarak tanımlamışsanız, bu sabit de sonuca dahil edilir. Sadece ini değerleri değerlendirmeye alınır. Örnek:
<?php
define('AT', 'Doru at');
// Bölümleri çözümlemeyelim
$ini_dizisi = parse_ini_file("misal.ini");
print_r($ini_dizisi);
// Bölümleri de çözümleyelim
$ini_dizisi = parse_ini_file("misal.ini", true);
print_r($ini_dizisi);
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
Array ( [bir] => 1 [yedi] => 7 [hayvan] => Doru at [yol] => /usr/local/bin [URL] => http://localhost/~kullanici [phpversion] => Array ( [0] => 5.0 [1] => 5.1 [2] => 5.2 [3] => 5.3 ) ) Array ( [ilk_bölüm] => Array ( [bir] => 1 [yedi] => 7 [hayvan] => Doru at ) [ikinci_bölüm] => Array ( [yol] => /usr/local/bin [URL] => http://localhost/~kullanici ) [üçüncü_bölüm] => Array ( [phpversion] => Array ( [0] => 5.0 [1] => 5.1 [2] => 5.2 [3] => 5.3 ) ) )
Örnek 3 - Bir php.ini dosyasının parse_ini_file() ile çözümlenmesi
<?php
// Aşağıdaki sonuçları karşılaştırmak için basit bir işlev
function evethayır($ifade)
{
return($ifade ? 'Evet' : 'Hayır');
}
// php_ini_loaded_file() ile php.ini dosyasının yolunu öğrenelim.
// İşlev PHP 5.2.4'ten beri kullanılabiliyor.
$ini_yolu = php_ini_loaded_file();
// php.ini dosyasını çözümleyelim
$ini = parse_ini_file($ini_yolu);
// Değerleri karşılaştırıp basalım; get_cfg_var() ile de aynı
// sonuçların alınacağına dikkat ediniz
echo '(çözümlenen) magic_quotes_gpc =' .
evethayır($ini['magic_quotes_gpc']) . PHP_EOL;
echo '(yüklenen) magic_quotes_gpc = ' .
evethayır(get_cfg_var('magic_quotes_gpc')) . PHP_EOL;
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
(çözümlenen) magic_quotes_gpc = Evet (yüklenen) magic_quotes_gpc = Evet
Bilginize:
Bu işlev php.ini dosyasına hiçbir şey yapmaz. Zaten betiğinizi çalıştırdığınız sırada işlem yapılır. Bu işlevi sadece kendi uygulamanızın yapılandırma dosyasını okumak için kullanabilirsiniz.
Bilginize:
INI dosyasındaki bir değer harf ve rakamların haricinde karakterler içeriyorsa bu değeri çift tırnak (") imlerinin arasına almalısınız.
Bilginize: INI dosyalarında anahtar olarak kullanılmaması gereken anahtar sözcükler vardır: none, null, yes, no, on, off, true ve false. null, no ve false değerleri "" olarak, yes ve true ise "1" olarak sonuçlanır. {}|&~![()^" karakterleri anahtar içinde hiçbir yerde kullanılamaz ve değer olarak da özel bir anlama sahiptirler.