(PHP 4, PHP 5, PHP 7)
setlocale — Yereli ayarlar
$sınıf
, string $yerel
[, string $...
] )$sınıf
, array $yerel
)Yerel bilgisini ayarlar.
sınıf
sınıf
olarak yerel ayarıyla ilgili belli bir
işlevsellik belirten şu sabitlerden biri belirtilebilir:
LC_ALL
- aşağıdakilerin hepsi.
LC_COLLATE
- dizge karşılaştırması için;
strcoll() işlevine bakınız.
LC_CTYPE
- karakter sınıflaması ve dönüşümü
için; bir örnek olarak strtoupper() işlevine
bakınız.
LC_MONETARY
- Para biçemlemesi için; bkz,
localeconv().
LC_NUMERIC
- ondalık ayraçlar için; bkz,
localeconv().
LC_TIME
- tarih ve saat biçemlemesi için; bkz,
strftime()
LC_MESSAGES
- sistem iletileri için (PHP
libintl ile derlendiği takdirde kullanılabilir).
yerel
Eğer NULL
belirtilirse veya "" şeklinde boş bir
dizge belirtilmişse, yerel isimleri yukarıdaki sınıflarla aynı isimdeki
ortam değişkenlerinden veya "LANG
" ortam
değişkeninden alınır.
Eğer yerel
"0" ise,
yerel ayarı değiştirilmeden mevcut ayar döndürülür.
Eğer yerel
bir dizi ise veya ek değiştirgeler
belirtilmişse, yeni yerel başarıyla ayarlanana kadar belirtilen her
dizi elemanı veya her değiştirge tek tek denenir. Yerel isimlerinin
farklı sistemlerde farklı isimlerde bulunması durumunda veya
kullanılabilir yerelin bulunamaması olasılığına karşı son çareleri
belirtmek için kullanılır.
...
Yerel ayarları başarılı olana kadar denenecek seçimlik dizi veya dizge.
Bilginize:
Windows'ta, setlocale(LC_ALL, '') kullanımında, sistemin bölgesel ayarlar/dil ayarlarında (Denetim Masasından erişilebilir) belirtilmiş yerelin ismi kullanılır.
Ayarlama yapılabilmişse yeni yerel ismi, platformunuzda yereller işlevsel
değilse, belirtilen yerel yoksa veya sınıf ismi geçersizse FALSE
döner.
Geçersiz bir sınıf ismi ayrıca bir uyarı üretilmesine sebep olur. Sınıf ve yerel isimleri » RFC 1766 ve » ISO 639'da bulunabilir. Farklı sistemler yereller için farklı isimleme şemaları kullanırlar.
Bilginize:
setlocale() işlevinin dönüş değeri PHP'nin üzerinde çalıştığı sisteme bağlıdır. Sistemin setlocale işlevinin döndürdüğü değeri döndürür.
Sürüm: | Açıklama |
---|---|
5.3.0 |
sınıf değiştirgesinde LC_*
sabitlerinden biri yerine bir dizge aktarılırsa işlev artık bir
E_DEPRECATED uyarısı çıktılamaktadır.
|
4.3.0 | Çok sayıda yerel belirtilebilir oldu. |
4.2.0 |
sınıf olarak bir dizge aktarılması artık
önerilmiyor. Dizge değil yukarıdaki sabitlerin kullanılması gerekiyor.
Bu sabitlerin bir dizge olarak (tırnak içinde) belirtilmesi artık bir
uyarıya sebep olmaktadır.
|
Örnek 1 - setlocale() örnekleri
<?php
/* Yereli Türkçe yapalım */
setlocale(LC_ALL, 'tr_TR.UTF-8');
/* Çıktısı: 22 Aralık 1978 Cuma */
echo strftime("%e %B %Y %A\n", mktime(0, 0, 0, 12, 22, 1978));
/* Türkçe için farklı yerel isimleri deneyelim (PHP 4.3.0 ve sonrası) */
$loc_tr = setlocale(LC_ALL, 'tr_TR.UTF-8', 'tr_TR', 'tr', 'turkish');
echo "Türkçe için tercih edilen yerel ismi: '$loc_tr\n'";
?>
Örnek 2 - Windows için setlocale() örnekleri
<?php
/* Yereli Felemenkçe yapalım */
setlocale(LC_ALL, 'nld_nld');
/* Çıktısı: vrijdag 22 december 1978 */
echo strftime("%A %d %B %Y", mktime(0, 0, 0, 12, 22, 1978));
/* Almanca için farklı yerel isimleri deneyelim (PHP 4.3.0 ve sonrası) */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
echo "Almanca için tercih edilen yerel ismi: '$loc_de'";
?>
Evre başına değil süreç başına yerel bilgisi ayarlanır. Windows üzerinde Apache veya IIS gibi çok evreli bir sunucu çalıştırıyorsanız, betiğinizde setlocale() işlevini hiç çağırmadığınız halde yerel ayarlarında ani değişiklikler olduğunu gözlemlemişsinizdir. Bunun sebebi aynı anda aynı süreç altında başka evrelerde başka betiklerin çalışması ve bunların süreç genelinde geçerli olan setlocale() kullanımlarıdır.
Windows kullanıcıları Microsoft'un MSDN sitesinde
yerel
dizgeleri hakkında bilgi bulabilirler.
Desteklenen dil dizgeleri »
http://msdn.microsoft.com/en-us/library/39cwe7zf%28v=vs.90%29.aspx adresinde desteklenen ülke/bölge
dizgeleri ise »
http://msdn.microsoft.com/en-us/library/cdax410z%28v=vs.90%29.aspx adresinde bulunabilir.