Fungsi PHP htmlspecialchars()

Contoh

Tukubah simbol yang ditakrifkan "<" (kecil) dan ">" (besar) kepada entiti HTML:

<?php
$str = "Ini adalah teks <b>tebal</b> yang ada.";
echo htmlspecialchars($str);
?>

Output HTML kod di atas seperti berikut (lihat kod sumber):

<!DOCTYPE html>
<html>
<body>
Ini adalah teks <b>tebal</b> yang ada.
</body>
</html>

Output pemeriksaan kod di atas seperti ini:

Ini adalah teks <b>tebal</b> yang ada.

Contoh Berjalan

Definisi dan penggunaan

Fungsi htmlspecialchars() mengubah simbol yang ditakrifkan kepada entiti HTML.

Simbol yang ditakrifkan adalah:

  • & (dan) menjadi &
  • " (petanda kutip ganda) menjadi "
  • ' (petanda kutip tunggal) menjadi '
  • < (kecil) menjadi <
  • > (besar) menjadi >

Pemberitahuan:Untuk mengubah entiti HTML yang khas kembali kepada aksara, gunakan htmlspecialchars_decode() Fungsi.

Sintaksis

htmlspecialchars(string,flags,character-set,double_encode)
Parameter Deskripsi
string Diperlukan. Menentukan string yang akan diubah.
flags

Pilihan. Menentukan bagaimana menghadapi kutip, pengkodean yang tak sah dan jenis dokumen yang digunakan.

Jenis kutip yang tersedia:

  • ENT_COMPAT - Lain. Hanya mengkodekan petanda kutip ganda.
  • ENT_QUOTES - Mengkodekan petanda kutip ganda dan tunggal.
  • ENT_NOQUOTES - Tidak mengkodekan apa-apa petanda kutip.

Pengkodean yang tak sah:

  • ENT_IGNORE - Abaikan pengkodean yang tak sah bukannya mengembalikan string kosong. Harap dihindari kerana ini boleh mempengaruhi keselamatan.
  • ENT_SUBSTITUTE - Tukubah pengkodean yang tak sah dengan aksara yang ditentukan yang mempunyai simbol penggantian Unicode U+FFFD (UTF-8) atau &#FFFD; bukannya kembali string kosong.
  • ENT_DISALLOWED - Tukubah kod titik yang tak sah dalam jenis dokumen yang ditentukan digantikan dengan simbol penggantian Unicode U+FFFD (UTF-8) atau &#FFFD;.

Flags tambahan untuk menentukan jenis dokumen yang digunakan:

  • ENT_HTML401 - Default. Dihandling sebagai kode HTML 4.01.
  • ENT_HTML5 - Dihandling sebagai kode HTML 5.
  • ENT_XML1 - Dihandling sebagai kode XML 1.
  • ENT_XHTML - Dihandling sebagai kode XHTML.
character-set

Pilihan. String yang menentukan karakter set yang digunakan.

Nilai yang diizinkan:

  • UTF-8 - Default. ASCII yang kompatibel dengan Unicode 8-bit multi-byte
  • ISO-8859-1 - Eropa
  • ISO-8859-15 - Eropa (menambahkan simbol euro + huruf Perancis dan Finlandia yang hilang di ISO-8859-1)
  • cp866 - Karakter set Cyrillic yang khusus untuk DOS
  • cp1251 - Karakter set Cyrillic yang khusus untuk Windows
  • cp1252 - Karakter set Eropa yang khusus untuk Windows
  • KOI8-R - Bahasa Rusia
  • BIG5 - Bahasa Tionghoa kompleks, utamanya digunakan di Taiwan
  • GB2312 - Bahasa Tionghoa sederhana, karakter set standar nasional
  • BIG5-HKSCS - Big5 dengan ekspansi Hong Kong
  • Shift_JIS - Bahasa Jepang
  • EUC-JP - Bahasa Jepang
  • MacRoman - Karakter set yang digunakan oleh sistem operasi Mac

Keterangan:Dalam versi PHP sebelum 5.4, karakter yang tak dapat diidentifikasi akan diabaikan dan digantikan dengan ISO-8859-1. Dari PHP 5.4, karakter yang tak dapat diidentifikasi akan diabaikan dan digantikan dengan UTF-8.

double_encode

Pilihan. Boolean, menentukan apakah entitas HTML yang sudah ada akan dikodekan.

  • TRUE - Default. Mengubah setiap entitas.
  • FALSE - Tidak akan mengkodekoding entitas HTML yang sudah ada.

Detil teknis

Kembalikan nilai:

Kembalikan string yang telah diubah.

Jika string Jika terdapat pengodean yang tidak sah, akan kembalikan string kosong, kecuali diatur ENT_IGNORE atau ENT_SUBSTITUTE flag.

Versi PHP: 4+
Log pembaruan:

Dalam PHP 5,character-set Nilai baku parameter diubah menjadi UTF-8.

Dalam PHP 5.4, ditambahkan: ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 dan ENT_XHTML.

Dalam PHP 5.3, ditambahkan ENT_IGNORE.

Dalam PHP 5.2.3, ditambahkan double_encode Parameter.

Di PHP 4.1, ditambahkan character-set Parameter.

Contoh Lebih Banyak

Contoh 1

Tukar beberapa aksara yang ditakrifkan menjadi entiti HTML:

<?php
$str = "Bill & 'Steve'";
echo htmlspecialchars($str, ENT_COMPAT); // Convert double quotes only
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // Convert double quotes and single quotes
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // Convert no quotes
?>

Output HTML kod di atas seperti berikut (lihat kod sumber):

<!DOCTYPE html>
<html>
<body>
Bill & 'Steve'<br>
Bill & 'Steve'<br>
Bill & 'Steve'
</body>
</html>

Output pemeriksaan kod di atas seperti ini:

Bill & 'Steve'
Bill & 'Steve'
Bill & 'Steve'

Contoh Berjalan

Contoh 2

Tukar petanda kutip ganda menjadi entiti HTML:

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

Output HTML kod di atas seperti berikut (lihat kod sumber):

<!DOCTYPE html>
<html>
<body>
Saya sayang "PHP".
</body>
</html>

Output pemeriksaan kod di atas seperti ini:

Saya sayang "PHP".

Contoh Berjalan