tutorial pengembangan web terbaru
 

PHP htmlspecialchars() Function

<PHP String Reference

Contoh

Mengkonversi karakter yang telah ditetapkan "<" (less than) dan ">" (greater than) ke entitas HTML:

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

Output HTML dari kode di atas akan (View Source) :

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

Output browser kode di atas akan menjadi:

This is some <b>bold</b> text.
Menjalankan contoh »

Definisi dan Penggunaan

The htmlspecialchars() fungsi mengkonversi beberapa karakter yang telah ditetapkan untuk entitas HTML.

Karakter yang telah ditetapkan adalah:

  • & (ampersand) menjadi & amp;
  • " (double quote) menjadi & quot;
  • ' (single quote) menjadi & # 039;
  • < (less than) menjadi & lt;
  • > (greater than) menjadi & gt;

Tip: Untuk mengkonversi entitas HTML khusus kembali ke karakter, menggunakan htmlspecialchars_decode() fungsi.


Sintaksis

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

Parameter Deskripsi
string Wajib. Menentukan string untuk mengkonversi
flags Pilihan. Menentukan bagaimana menangani kutipan, encoding tidak valid dan jenis dokumen yang digunakan.

Gaya kutipan yang tersedia adalah:

  • ENT_COMPAT - default. Mengkodekan hanya tanda kutip ganda
  • ENT_QUOTES - Mengkodekan tanda kutip ganda dan tunggal
  • ENT_NOQUOTES - Tidak encode tanda kutip

encoding tidak valid:

  • ENT_IGNORE - Mengabaikan encoding tidak valid bukannya memiliki fungsi mengembalikan string kosong. Harus dihindari, karena dapat memiliki implikasi keamanan.
  • ENT_SUBSTITUTE - Menggantikan encoding tidak valid untuk karakter tertentu diatur dengan Unicode Penggantian Karakter U + FFFD (UTF-8) atau & # FFFD; bukannya kembali string kosong.
  • ENT_DISALLOWED - Menggantikan poin kode yang tidak valid dalam DOCTYPE ditentukan dengan Unicode Penggantian Karakter U + FFFD (UTF-8) atau & # FFFD;

bendera tambahan untuk menentukan DOCTYPE digunakan:

  • ENT_HTML401 - default. Menangani kode seperti HTML 4.01
  • ENT_HTML5 - Menangani kode sebagai HTML 5
  • ENT_XML1 - Menangani kode XML 1
  • ENT_XHTML - Menangani kode sebagai XHTML
character-set Pilihan. Sebuah string yang menentukan karakter-diatur untuk menggunakan.

nilai yang diperbolehkan adalah:

  • UTF-8 - Default. ASCII kompatibel multi-byte 8-bit Unicode
  • ISO-8859-1 - Eropa Barat
  • ISO-8859-15 - Eropa Barat (menambahkan Euro tanda + huruf Perancis dan Finlandia hilang dalam ISO-8859-1)
  • cp866 - DOS khusus charset Cyrillic
  • CP1251 - Windows-spesifik charset Cyrillic
  • cp1252 - Jendela charset khusus untuk Eropa Barat
  • KOI8-R - Rusia
  • BIG5 - Cina Tradisional, terutama digunakan di Taiwan
  • GB2312 - Cina Sederhana, standar nasional set karakter
  • BIG5-HKSCS - Big5 dengan ekstensi Hong Kong
  • Shift_JIS - Jepang
  • EUC-JP - Jepang
  • MacRoman - Karakter-set yang digunakan oleh Mac OS

Note: tidak dikenal karakter-set akan diabaikan dan diganti dengan ISO-8859-1 versi sebelum PHP 5.4. Sebagai PHP 5.4, akan diabaikan sebuah diganti dengan UTF-8.

double_encode Pilihan. Nilai boolean yang menentukan apakah untuk mengkodekan entitas html yang ada atau tidak.
  • BENAR - default. Akan mengubah segalanya
  • SALAH - tidak akan menyandikan entitas html yang ada

Rincian teknis

Kembali Nilai: Mengembalikan dikonversi string yang

Jika string berisi encoding tidak valid, itu akan mengembalikan string kosong, kecuali baik ENT_IGNORE atau ENT_SUBSTITUTE bendera ditetapkan
PHP Versi: 4+
changelog: Nilai default untuk parameter karakter-set diubah menjadi UTF-8 di PHP 5

ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 dan ENT_XHTML ditambahkan di PHP 5.4

ENT_IGNORE ditambahkan di PHP 5.3

Parameter double_encode ditambahkan pada PHP 5.2.3

Karakter-set parameter ditambahkan di PHP 4.1

Contoh lebih

contoh 1

Mengkonversi beberapa karakter yang telah ditetapkan untuk entitas HTML:

<?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
?>

Output HTML dari kode di atas akan (View Source) :

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

Output browser kode di atas akan menjadi:

Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
Menjalankan contoh »

contoh 2

Mengkonversi tanda kutip ganda untuk entitas HTML:

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

Output HTML dari kode di atas akan (View Source) :

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

Output browser kode di atas akan menjadi:

I love "PHP" .
Menjalankan contoh »

<PHP String Reference