parse_ini_fileBir yapılandırma dosyasını çözümler
&reftitle.description;
arrayfalseparse_ini_filestringdosyaismiboolbölümleri_işle&false;inttarama_kipiINI_SCANNER_NORMALparse_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.
&reftitle.parameters;
dosyaismi
Çözümlenecek yapılandırma dosyasının ismi. Göreli bir yol
kullanılıyorsa, mevcut çalışma dizinine göre, ardından
include_path değerlendirilir.
bölümleri_işle
Bu bağımsız değişkene &true; atanırsa bölüm isimlerini ve içerdikleri
ayarları içeren çok boyutlu bir dizi döner. Bağımsız değişkenin ö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.
&ini.scanner.typed;
&reftitle.returnvalues;
Başarısızlık durumunda &false; aksi takdirde ayarları bir ilişkisel dizi
içinde döndürür.
&reftitle.examples;
- misal.ini içeriği- parse_ini_file örneği
INI dosyası içinde sabitler de
(fakat __FILE__ gibi sihirli sabitler değil) çö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 ve değer bir sabit olmalıdır. Örnek:
]]>
&example.outputs.similar;
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
)
[urls] => Array
(
[svn] => http://svn.php.net
[git] => http://git.php.net
)
)
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
)
[urls] => Array
(
[svn] => http://svn.php.net
[git] => http://git.php.net
)
)
)
]]>
- Bir php.ini dosyasının parse_ini_file ile
çözümlenmesi
]]>
&example.outputs.similar;
Ara Değerler
Sabitleri değerlendirmeye ek olarak, belirli karakterlerin ini
değerlerinde özel anlamları vardır. Buna ek olarak, ortam değişkenleri ve
önceden tanımlanmış yapılandırma seçenekleri ${}sözdizimi
kullanılarak okunabilir (bkz: get_cfg_var).
Öncelleme Karakterleri
Bazı karakterlerin çift tırnaklı dizgelerde özel anlamları olduğundan
önlerine tersbölü çizgisi konarak öncelenmeleri gerekir. Hepsinden önce,
dizgenin sınırlarını belirleyen çift tırnak " ve
tersbölünün \ kendisi (özel karakterlerden birini
önceliyorsa) bu özel karakterlerdendir:
Windows benzeri dosya yollarında bunun bir istisnası vardır:
Tırnaklı dizgeyi bir satırsonu izliyorsa sondaki ters bölüyü
öncelememek mümkündür:
Çok satırlı bir değerde ardından satır sonu gelen bir çift tırnağın
öncelenmesi gerekiyorsa, değer birleştirmeyi aşağıdaki şekilde kullanmak
mümkündür (bir çift tırnaklı dizenin hemen ardından bir diğeri gelir):
Özel anlamı olan karakterlerden bir diğeri $ dolar imidir.
Ardından açan kaşlı ayraç geliyorsa dolar iminin öncelenmesi gerekir:
Karakter önceleme INI_SCANNER_RAW kipinde
desteklenmez (bu kipte tüm karakterler "oldukları gibi" işlenir).
İni çözümleyicisinin standart öncelemleri (\n,
\t ve benzerlerini) desteklemediğini dikkate almak gerekir.
Gerekirse, parse_ini_file işlevinin sonucunu
stripcslashes işleviyle yeniden işlemden geçirmek
gerekebilir.
&reftitle.notes;
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.
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.
INI dosyalarında anahtar olarak kullanılmaması gereken bazı özel sözcükler
vardır. Bunlar: null, yes,
no, true, false,
on, off, none.
INI_SCANNER_TYPED kipi kullanılmadıkça
null, off, no ve
false sözcükleri "" ile
sonuçlanırken, on, yes ve
true sözcükleri "1" ile sonuçlanır.
?{}|&~![()^" karakterleri hiçbir yerde anahtar veya
değer içinde kullanılmamalıdır.
Eşit işareti içermeyen girdiler yoksayılır. Örneğin, "foo" yoksayılırken
"bar =" çözümlenir ve boş değer eklenir. Örneğin, MySQL
my.cnf içinde bir "no-auto-rehash" girdisine sahiptir
ve herhangi bir değer almadığı için yoksayılır.
ini dosyaları genellikle HTTP sunucuları tarafından düz metin olarak kabul
edilir ve bu nedenle istenirse tarayıcılara sunulur. Bu, güvenlik için ini
dosyalarınızı belge kök dizininiz dışında tutmanız veya HTTP sunucunuzu
onlara hizmet vermeyecek şekilde yeniden yapılandırmanız gerektiği
anlamına gelir. Bunlardan herhangi birinin yapılmaması bir güvenlik riski
oluşturabilir.
&reftitle.seealso;
parse_ini_string