Fungsi PHP htmlentities()

Contoh

Mengubah karakter menjadi entity HTML:

<?php
$str = "<? W3S?h????>";
echo htmlentities($str);
?>

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

<!DOCTYPE html>
<html>
<body>
<© W3Sçh°°¦§>
</body>
</html>

Output browser kode di atas:

<? W3S?h????>

Definisi dan penggunaan

Fungsi htmlentities() untuk mengubah karakter ke HTML entity.

Petunjuk:Untuk mengubah HTML entity kembali ke karakter, gunakan html_entity_decode() Fungsi.

Petunjuk:Gunakan get_html_translation_table() Fungsi untuk kembalikan tabel penerjemahan yang digunakan oleh function htmlentities().

Sintaks

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

Pilihan. Menentukan bagaimana menangani kutip, kode yang tidak sah, dan tipe 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.

Kode yang tidak sah:

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

Flag tambahan untuk menentukan tipe dokumen yang digunakan:

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

Pilihan. Sebuah string yang menentukan set karakter yang akan digunakan.

允许的值:

  • Nilai yang diizinkan:
  • UTF-8 - Default. ASCII yang kompatibel dengan Unicode berbilangan byte
  • ISO-8859-1 - Eropa Barat
  • ISO-8859-15 - Eropa Barat (menambahkan simbol euro + huruf bahasa Perancis dan Bahasa Finlandia yang hilang di ISO-8859-1)
  • cp866 - Set karakter Cyrillic khusus DOS
  • cp1251 - Set karakter Cyrillic khusus Windows
  • cp1252 - Set karakter Eropa Barat khusus Windows
  • KOI8-R - Bahasa Rusia
  • BIG5 - Bahasa Tionghoa tradisional, utamanya digunakan di Taiwan
  • GB2312 - Bahasa Tionghoa sederhana, karakter set standar negara
  • BIG5-HKSCS - Big5 dengan ekspansi Hong Kong
  • Shift_JIS - Bahasa Jepang
  • EUC-JP - Bahasa Jepang

MacRoman - Set karakter yang digunakan sistem operasi MacKeterangan:

double_encode

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

  • TRUE - Default. Mengubah setiap entity.
  • FALSE - Tidak akan mengenkodifikasi entity HTML yang sudah ada.

Detil teknis

Kembalian nilai:

Mengembalikan string yang telah diubah.

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

Versi PHP: 4+
Log pembaruan:

Dalam PHP 5,character-set Nilai default 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.

Dalam PHP 4.1, ditambahkan character-set Parameter.

Beberapa contoh lain

Contoh 1

Mengubah karakter menjadi entity HTML:

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

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

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

Output browser kode di atas:

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

Jalankan Instan

Contoh 2

Dengan menggunakan set karakter Barat Eropa, konversi beberapa karakter ke entitas HTML:

<?php
$str = "Nama saya Øyvind Øsane. Saya orang Norwegia.";
echo htmlentities($str, ENT_QUOTES, "ISO-8859-1"); 
// Hanya akan mengkonversi tanda kutip ganda (tidak tanda kutip tunggal), dan menggunakan set karakter Barat Eropa
?>

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

<!DOCTYPE html>
<html>
<body>
Nama saya Øyvind Øsane. Saya orang Norwegia.
</body>
</html>

Output browser kode di atas:

Nama saya Øyvind Øsane. Saya orang Norwegia.

Jalankan Instan