(PHP 4, PHP 5)
parse_ini_file — Bir yapılandırma dosyasını çözümler
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.
Çözümlenecek yapılandırma dosyası.
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.
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.