htmlspecialchars

(PHP 4, PHP 5, PHP 7, PHP 8)

htmlspecialcharsÖzel karakterleri HTML öğeleri haline getirir

Açıklama

htmlspecialchars(
    string$dizge,
    int$seçenekler = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,
    ?string$kodlama = null,
    bool$çifte_kodlama = true
): string

Bazı 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.

Uygulanan dönüşümler
KarakterKarakterin 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)&lt;
> (büyüktür)&gt;

Bağımsız Değişkenler

dizge

Dö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.

Olası sabit seçenekleri
Sabit İsmiAçıklama
ENT_COMPATSadece ç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_NOQUOTESNe 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üm

Karakterleri 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.

Desteklenen karakter kümeleri
Karakter kümesiTakma adıAçıklama
ISO-8859-1ISO8859-1 Batı Avrupa, Latin-1
ISO-8859-5ISO8859-5 Az kullanılan kril küme (Latin/Cyrillic).
ISO-8859-15ISO8859-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.
cp866ibm866, 866 DOS'a özgü Kril karakter kümesi.
cp1251Windows-1251, win-1251, 1251 Windows'a özgü Kril karakter kümesi.
cp1252Windows-1252, 1252 Doğu Avrupa için Windows'a özgü karakter kümesi.
KOI8-Rkoi8-ru, koi8r Rusça.
BIG5950 Geleneksel Çince, aslında Tayvan'da kullanılır.
GB2312936 Basitleştirilmiş Çince, ulusal standart karakter kümesi.
BIG5-HKSCS  Geleneksel Çince, Hong Kong eklentisi ile Big5.
Shift_JISSJIS, 932 Japonca.
EUC-JPEUCJP, 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önen Değerler

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 Bilgisi

Sürüm: Açıklama
8.1.0seçenekler bağımsız değişkeninin öntanımlı değeri ENT_COMPAT iken ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401 oldu.

Örnekler

Örnek 1 - htmlspecialchars() örneği

<?php
$yenisi
= htmlspecialchars("<a href='dnm'>Deneme</a>", ENT_QUOTES);
echo
$yenisi; // &lt;a href=&#039;dnm&#039;&gt;Deneme&lt;/a&gt;
?>

Notlar

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çenekler durumunda, şu kurallar uygulanır:

Ayrıca Bakınız

  • get_html_translation_table() - htmlspecialchars ve htmlentities tarafından kullanılan dönüşüm tablosunu döndürür
  • htmlspecialchars_decode() - Özel HTML öğelerini gerisin geriye karakterlere dönüştürür
  • strip_tags() - Bir dizgeden HTML ve PHP etiketlerini ayıklar
  • htmlentities() - Dönüştürülebilecek tüm karakterleri HTML öğeleri haline getirir
  • nl2br() - Dizgedeki tüm satırsonlarının yerine HTML satır katlayıcıları yerleştirilir
To Top