(PHP 4, PHP 5, PHP 7, PHP 8)
htmlspecialchars — Özel karakterleri HTML öğeleri haline getirir
$dizge,$seçenekler = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,$kodlama = null,$çifte_kodlama = trueBazı karakterler HTML'de özel anlama sahiptir ve anlamlarını korumaları için HTML öğesi olarak gösterilmesi gerekir. Bu işlev bu dönüşümleri yapılmış olarak bir dizge döndürür. Eğer ilişkili isimli öğelere sahip tüm girdi alt dizgelerinin dönüştürülmesi gerekiyorsa bu işlev yerine htmlentities() işlevi kullanılmalıdır.
If the input string passed to this function and the final document share the same character set, this function is sufficient to prepare input for inclusion in most contexts of an HTML document. If, however, the input can represent characters that are not coded in the final document character set and you wish to retain those characters (as numeric or named entities), both this function and htmlentities() (which only encodes substrings that have named entity equivalents) may be insufficient. You may have to use mb_encode_numericentity() instead.
| Karakter | Karakterin karşılığı |
|---|---|
& (ampersand) |
& |
" (çift tırnak) |
ENT_NOQUOTES belirtilmezse " atanır |
' (tek tırnak) |
' (ENT_HTML401 için) veya sadece ENT_QUOTES belirtildiği durumda ' (ENT_XML1, ENT_XHTML veya ENT_HTML5 için)
|
< (küçüktür) |
< |
> (büyüktür) |
> |
dizgeDönüştürülecek dizge.
seçenekler
Geçersiz kod dizilimlerinin, kullanılan belge türünün ve tırnakların nasıl ele alınacağını belirten aşağıdaki seçenekler bitsel VEYAlanarak
seçenekler bağımsız değişkeninde belirtilebilir.
ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401
öntanımlıdır.
| Sabit İsmi | Açıklama |
|---|---|
ENT_COMPAT |
Sadece çift tırnaklar dönüştürülür, tek tırnaklara dokunulmaz. |
ENT_QUOTES |
Çift tırnaklara ilaveten tek tırnaklar da dönüştürülür. |
ENT_NOQUOTES |
Ne tek ne de çift tırnaklar dönüştürülür. |
ENT_IGNORE |
Geçersiz kod dizilimlerinde boş dizge döndürülmeyip seesizce yoksayma yoluna gidilir. » Güvenlikle ilgili etkiler olabileceğinden bu seçeneğin kullanımı önerilmemektedir. |
ENT_SUBSTITUTE |
Geçersiz kod dizilimi için boş bir dizge döndürülmeyip dizilimin yerine Unicode Değiştirme Karakteri (U+FFFD veya &#FFFD;) yerleştirilir. |
ENT_DISALLOWED |
Geçersiz kod dizilimini olduğu gibi bırakmak yerine Unicode Değiştirme Karakteri (U+FFFD veya &#FFFD;) ile değiştirilir. Örneğin, XML belgelerin gömülü harici içerikle iyi biçimliliğini sağlamak için bu seçenek kullanışlı olabilir. |
ENT_HTML401 |
Kod HTML 4.01 olarak ele alınır. |
ENT_XML1 |
Kod XML 1 olarak ele alınır. |
ENT_XHTML |
Kod XHTML olarak ele alınır. |
ENT_HTML5 |
Kod HTML 5 olarak ele alınır. |
karkümKarakterleri dönüştürürken kullanılan kodlamayı tanımlayan seçimlik bağımsız değişken.
Belirtilmezse
kodlama için
default_charset yapılandırma
seçeneğinin değeri öntanımlıdır.
Bu bağımsız değişken teknik olarak seçimlikse de kodunuz için gereken değeri atamanız gerekir. Çünkü default_charset yapılandırma seçeneğine hatalı bir değer atanmış olabilir.
Bu işlevin amacı gereği, ISO-8859-1,
ISO-8859-15, UTF-8,
cp866, cp1251,
cp1252 ve KOI8-R karakter
kümeleri, aynı konumları işgal eden
(htmlspecialchars() işlevinden etkilenen)
karakterler bakımından eşdeğerdir.
Aşağıdaki karakter kümeleri desteklenmektedir.
| Karakter kümesi | Takma adı | Açıklama |
|---|---|---|
| ISO-8859-1 | ISO8859-1 | Batı Avrupa, Latin-1 |
| ISO-8859-5 | ISO8859-5 | Az kullanılan kril küme (Latin/Cyrillic). |
| ISO-8859-15 | ISO8859-15 | Doğu Avrupa, Latin-9. Euro işaretini ekler, Fransızca ve Fince harfler Latin-1'de (ISO-8859-1) yoktur. |
| UTF-8 | ASCII uyumlu 8 bitlik çok baytlı Unicode. | |
| cp866 | ibm866, 866 | DOS'a özgü Kril karakter kümesi. |
| cp1251 | Windows-1251, win-1251, 1251 | Windows'a özgü Kril karakter kümesi. |
| cp1252 | Windows-1252, 1252 | Doğu Avrupa için Windows'a özgü karakter kümesi. |
| KOI8-R | koi8-ru, koi8r | Rusça. |
| BIG5 | 950 | Geleneksel Çince, aslında Tayvan'da kullanılır. |
| GB2312 | 936 | Basitleştirilmiş Çince, ulusal standart karakter kümesi. |
| BIG5-HKSCS | Geleneksel Çince, Hong Kong eklentisi ile Big5. | |
| Shift_JIS | SJIS, 932 | Japonca. |
| EUC-JP | EUCJP, eucJP-win | Japonca. |
| MacRoman | Mac OS tarafından kullanılmış karakter kümesi. | |
'' |
Boş bir dize, karakter kümesini, komut dosyası kodlamasından (Zend multibyte), default_charset ve geçerli yerel ayardan (bkz. nl_langinfo() ve setlocale()) algılamayı bu sırayla etkinleştirir. Önerilmez. |
Bilginize: Bunlardan başka karakter kümesi tanınmaz. Yerine öntanımlı karakter kümesi kullanılır ve bir uyarı çıktılanır.
çifte_kodlama
Bu bağımsız değişkende false belirtilirse zaten kodlanmış HTML öğeleri
tekrar kodlanmaz. Öntanımlı olarak herşey dönüştürülür.
Dönüştürülen dizge.
Belirtilen kodlama altında belirtilen
dizge geçersiz bir kod dizilimi içeriyorsa,
ENT_IGNORE veya ENT_SUBSTITUTE
seçenekleri atanmadığı takdirde boş dizge döndürülür.
| Sürüm: | Açıklama |
|---|---|
| 8.1.0 |
seçenekler bağımsız değişkeninin öntanımlı değeri
ENT_COMPAT iken ENT_QUOTES |
ENT_SUBSTITUTE | ENT_HTML401
oldu.
|
Örnek 1 - htmlspecialchars() örneği
<?php
$yenisi = htmlspecialchars("<a href='dnm'>Deneme</a>", ENT_QUOTES);
echo $yenisi; // <a href='dnm'>Deneme</a>
?>Bilginize:
Bu işlev yukarıda listelenenler dışında hiçbir şeyi dönüştürmez. Tam bir dönüşüm istiyorsanız htmlentities() işlevine bakınız.
Bilginize:
Tutarsız
seçeneklerdurumunda, şu kurallar uygulanır:
ENT_COMPAT,ENT_QUOTES,ENT_NOQUOTESseçeneklerinden hiçbiri mevcut değilse,ENT_NOQUOTESöntanımlıdır.ENT_COMPAT,ENT_QUOTES,ENT_NOQUOTESseçeneklerinden birden fazlası mevcutsa, en yüksek önceliğiENT_QUOTESalır ve bunuENT_COMPATtakip eder.ENT_HTML401,ENT_HTML5,ENT_XHTML,ENT_XML1seçeneklerinden hiçbiri mevcut değilseENT_HTML401öntanımlıdır.ENT_HTML401,ENT_HTML5,ENT_XHTML,ENT_XML1seçeneklerinden birden fazlası mevcutsa, en yüksek önceliğiENT_HTML5alır ve bunuENT_XHTML,ENT_XML1veENT_HTML401takip eder.ENT_DISALLOWED,ENT_IGNORE,ENT_SUBSTITUTEseçeneklerinden birden fazlası mevcutsa, en yüksek önceliğiENT_IGNOREalır ve bunuENT_SUBSTITUTEtakip eder.