En son web geliştirme öğreticiler
 

PHP htmlspecialchars() Function

<PHP dize Başvuru

Örnek

Önceden tanımlanmış karakter dönüştürme "<" (less than) ve ">" (greater than) HTML öğeleri:

<?php
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
?>

Kodun HTML çıktısını göreceğiz (View Source) :

<!DOCTYPE html>
<html>
<body>
This is some &lt;b&gt;bold&lt;/b&gt; text.
</body>
</html>

kod tarayıcı çıktısını göreceğiz:

This is some <b>bold</b> text.
»Run örnek

Tanımı ve Kullanımı

htmlspecialchars() işlevi HTML öğeleri bazı önceden tanımlanmış karakterleri dönüştürür.

Önceden tanımlanmış karakterler şunlardır:

  • Ve (ampersand) olur & Sons;
  • " (double quote) olur ve quot;
  • ' (single quote) olur & # 039;
  • < (less than) olur ve LT;
  • > (greater than) olur ve gt;

İpucu: kullanmak, geri karakterlere özel HTML öğelerini dönüştürmek için htmlspecialchars_decode() fonksiyonu.


Sözdizimi

htmlspecialchars( string,flags,character-set,double_encode )

Parametre Açıklama
string Gereklidir. dönüştürmek için dizeyi belirtir
flags İsteğe bağlı. tırnak, geçersiz bir kodlama ve kullanılan belge türü nasıl işleneceğini belirler.

Mevcut alıntı stilleri şunlardır:

  • ENT_COMPAT - Standart. Sadece çift tırnak kodlar
  • ENT_QUOTES - çift ve tek tırnak kodlar
  • ENT_NOQUOTES - hiçbir alıntı kodlamak yapmaz

Geçersiz kodlama:

  • ENT_IGNORE - yerine işlev boş bir dize döndürür sahip geçersiz kodlamaları yok sayar. o güvenlik sorunlarına neden olabilir gibi kaçınılmalıdır.
  • ENT_SUBSTITUTE - Unicode Değiştirme karakter olan U + FFFD ayarlanmış belirli bir karakter için geçersiz kodlama değiştirir (UTF-8) veya # FFFD; yerine boş bir dize döndürmek.
  • ENT_DISALLOWED - Unicode Değiştirme karakter olan U + FFFD belirtilen DOCTYPE'ta geçersiz kod noktalarını değiştirir (UTF-8) veya # FFFD;

kullanılan doküman türü belirtmek için ek bayrakları:

  • ENT_HTML401 - Standart. HTML 4.01 olarak kod Kulp
  • ENT_HTML5 - HTML 5 olarak kod Kulp
  • ENT_XML1 - XML ​​1 olarak kod Kulp
  • ENT_XHTML - XHTML olarak kod Kulp
character-set İsteğe bağlı. kullanmak karakter kümesi hangi belirten bir dize.

İzin verilen değerler şunlardır:

  • UTF-8 - Varsayılan. ASCII uyumlu multi-byte 8 bit Unicode
  • ISO-8859-1 - Batı Avrupa
  • ISO-8859-15 - Batı Avrupa (Euro işareti + ISO-8859-1 eksik Fransızca ve Fince harfler ekler)
  • CP866 - DOS özgü Kril karakter kümesi
  • CP1251 - Windows'a özgü Kril karakter kümesi
  • CP1252 - Batı Avrupa için Windows'a özel charset
  • KOI8-R - Rus
  • Bıg5 - Geleneksel Çince, aslında Tayvan'da kullanılır
  • GB2312 - Basitleştirilmiş Çince, ulusal standart karakter kümesi
  • Bıg5-HKSCS - Big5 Hong Kong uzantılı
  • Shift_JIS - Japon
  • EUC-JP - Japon
  • MacRoman - Mac OS tarafından kullanılan Karakter kümesi

Note: Tanınmayan karakter setleri göz ardı ve PHP 5.4 öncesi sürümlerinde ISO-8859-1 yerini alacaktır. PHP 5.4 itibariyle, bir UTF-8 yerini dikkate alınmayacaktır.

double_encode İsteğe bağlı. Varolan HTML öğeleri veya olmasın kodlamak olmadığını belirten bir Boole değeri.
  • DOĞRU - Standart. Her şeyi dönüştürür
  • YANLIŞ - Mevcut HTML öğeleri kodlamak olmaz

Teknik detaylar

Geri dönüş değeri: Dönüştürülen dizge döndürür

Dize geçersiz kodlamaya içeriyorsa ENT_IGNORE veya ENT_SUBSTITUTE bayrakları ya ayarlanır sürece, bu boş bir dize döndürür
PHP Sürümü: 4+
Değişiklikler: Karakter kümesi parametresi için varsayılan değer PHP 5 UTF-8 olarak değiştirildi

ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 ve ENT_XHTML PHP 5.4 eklendi

ENT_IGNORE PHP 5.3 eklendi

Çifte_kodlama parametresi PHP 5.2.3 ilave edildi

Karakter kümesi parametresi PHP 4.1 eklendi

Diğer Örnekler

Örnek 1

HTML öğeleri bazı önceden tanımlanmış karakter dönüştürme:

<?php
$str = "Jane & 'Tarzan'";
echo htmlspecialchars($str, ENT_COMPAT); // Will only convert double quotes
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // Does not convert any quotes
?>

Kodun HTML çıktısını göreceğiz (View Source) :

<!DOCTYPE html>
<html>
<body>
Jane &amp; 'Tarzan'<br>
Jane &amp; &#039;Tarzan&#039;<br>
Jane &amp; 'Tarzan'
</body>
</html>

kod tarayıcı çıktısını göreceğiz:

Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
»Run örnek

Örnek 2

HTML öğeleri çift tırnak dönüştürün:

<?php
$str = 'I love "PHP" .';
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
?>

Kodun HTML çıktısını göreceğiz (View Source) :

<!DOCTYPE html>
<html>
<body>
I love &quot;PHP&quot;.
</body>
</html>

kod tarayıcı çıktısını göreceğiz:

I love "PHP" .
»Run örnek

<PHP dize Başvuru