(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
]] )
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.