Fungsi PHP htmlspecialchars()

Contoh

Mengubah karakter yang ditetapkan "<" (kecil) dan ">" (besar) ke HTML entity:

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

Output HTML kode di atas seperti berikut (lihat kode asli):

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

Output browser kode di atas:

Ini adalah beberapa teks <b>tebal</b>.

Contoh Penggunaan

Definisi dan penggunaan

Fungsi htmlspecialchars() mengubah karakter yang ditetapkan ke HTML entity.

Karakter yang ditetapkan adalah:

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

Petunjuk:Untuk mengkonversi HTML entity khusus ke karakter, gunakan htmlspecialchars_decode() Fungsi.

Sintaks

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

Pilihan. Menentukan bagaimana menangani kutip, pengkodean yang tidak sah, dan jenis dokumen yang digunakan.

Tipe kutip yang tersedia:

  • ENT_COMPAT - Default. Hanya mengkodekan tanda kutip ganda.
  • ENT_QUOTES - Mengkodekan tanda kutip ganda dan tunggal.
  • ENT_NOQUOTES - Tidak mengkodekan apapun tanda kutip.

Pengkodean yang tidak sah:

  • ENT_IGNORE - Abaikan pengkodean yang tidak sah daripada mengembalikan string kosong. Harap sejauh mungkin menghindari, karena ini dapat mempengaruhi keamanan.
  • ENT_SUBSTITUTE - Mengganti pengkodean yang tidak sah dengan karakter yang ditentukan yang memiliki karakter penggantian Unicode U+FFFD (UTF-8) atau &#FFFD; daripada mengembalikan string kosong.
  • ENT_DISALLOWED - Mengganti kode titik yang tidak sah di tipe dokumen yang ditentukan dengan karakter penggantian Unicode U+FFFD (UTF-8) atau &#FFFD;.

Flag tambahan untuk menentukan jenis dokumen yang digunakan:

  • ENT_HTML401 - Standar. Dibawah pengolahan kode HTML 4.01.
  • ENT_HTML5 - Dibawah pengolahan kode HTML 5.
  • ENT_XML1 - Dibawah pengolahan kode XML 1.
  • ENT_XHTML - Dibawah pengolahan kode XHTML.
character-set

Pilihan. String yang menentukan karakter set yang digunakan.

Nilai yang diizinkan:

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

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

double_encode

Pilihan. Boolean, menentukan apakah HTML entity yang sudah ada akan dienkodifikasi.

  • TRUE - Standar. Mengkonversi setiap entity.
  • FALSE - Tidak akan mengenkodifikasi HTML entity yang sudah ada.

Detil teknis

Nilai kembalian:

Kembalikan string yang telah diubah.

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

Versi PHP: 4+
Log pembaruan:

Pada PHP 5,character-set Nilai default parameter diubah menjadi UTF-8.

Pada PHP 5.4, di tambahkan: ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 dan ENT_XHTML.

Pada PHP 5.3, di tambahkan ENT_IGNORE.

Pada PHP 5.2.3, di tambahkan double_encode Parameter.

Dalam PHP 4.1, menambahkan character-set Parameter.

Beberapa contoh lain

Contoh 1

Konversi beberapa karakter yang ditetapkan ke entitas HTML:

<?php
$str = "Bill & 'Steve'";
echo htmlspecialchars($str, ENT_COMPAT); // Hanya konversi tanda kutip ganda
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // Konversi tanda kutip ganda dan tunggal
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // Tidak mengkonversi tanda kutip apapun
?>

Output HTML kode di atas seperti berikut (lihat kode asli):

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

Output browser kode di atas:

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

Contoh Penggunaan

Contoh 2

Konversi tanda kutip ganda ke entitas HTML:

<?php
$str = 'Saya mencintai "PHP".';
echo htmlspecialchars($str, ENT_QUOTES); // Konversi tanda kutip ganda dan tunggal
?>

Output HTML kode di atas seperti berikut (lihat kode asli):

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

Output browser kode di atas:

Saya mencintai "PHP".

Contoh Penggunaan