PHP

Fungsi String htmlentities() Pada PHP

Definisi dan Penggunaan

Fungsi htmlentities() digunakan untuk dapat mengubah karakter menjadi entitas HTML.

Tip: Untuk mengubah entitas HTML kembali menjadi karakter, gunakan fungsi html_entity_decode().

Tip: Gunakan fungsi get_html_translation_table() untuk mengembalikan tabel terjemahan yang digunakan oleh htmlentities ().

Syntax

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

Nilai Parameter

ParameterDeskripsi
stringRequired. Menentukan string yang akan diubah
flagsOptional.Menentukan bagaimana menangani kutipan, pengkodean yang tidak valid dan tipe 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 menyandikan tanda kutip apa pun

Enkode tidak valid:

ENT_IGNORE – Mengabaikan pengkodean yang tidak valid alih-alih membuat fungsi mengembalikan string kosong. Harus dihindari, karena mungkin memiliki implikasi keamanan.
ENT_SUBSTITUTE – Mengganti pengkodean yang tidak valid untuk kumpulan karakter tertentu dengan Karakter Pengganti Unicode U + FFFD (UTF-8) atau & # FFFD; bukannya mengembalikan string kosong.
ENT_DISALLOWED – Mengganti poin kode yang tidak valid di doctype yang ditentukan dengan Unicode Replacement Character U + FFFD (UTF-8) atau & # FFFD;

Flag tambahan untuk menentukan doctype yang digunakan:

ENT_HTML401 – Default. Tangani kode sebagai HTML 4.01
ENT_HTML5 – Menangani kode sebagai HTML 5
ENT_XML1 – Menangani kode sebagai XML 1
ENT_XHTML – Menangani kode sebagai XHTML
character-setOptional.String yang menentukan kumpulan karakter mana yang akan digunakan.

Nilai yang diperbolehkan adalah:

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

Catatan: Kumpulan karakter yang tidak dikenali akan diabaikan dan diganti dengan ISO-8859-1 dalam versi sebelum PHP 5.4. Mulai PHP 5.4, itu akan diabaikan dan digantikan oleh UTF-8.
double_encodeOptional. Nilai boolean yang menentukan apakah akan mengenkode entitas html yang ada atau tidak.

TRUE – Default. Akan mengubah segalanya
FALSE – Tidak akan menyandikan entitas html yang ada

Detail Teknis

Return Value:Mengembalikan string yang dikonversi. Namun, jika parameter string berisi encoding yang tidak valid, itu akan mengembalikan string kosong, kecuali jika flag ENT_IGNORE atau ENT_SUBSTITUTE disetel
PHP Version:4+
Changelog:PHP 5.6 – Mengubah nilai default untuk parameter set karakter ke nilai charset default (dalam konfigurasi).
PHP 5.4 – Mengubah nilai default untuk parameter set karakter ke UTF-8.
PHP 5.4 – Menambahkan ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 dan ENT_XHTML
PHP 5.3 – Menambahkan konstanta ENT_IGNORE.
PHP 5.2.3 – Menambahkan parameter double_encode.
PHP 4.1 – Menambahkan parameter set karakter.

Contoh 1
Ubah beberapa karakter menjadi entitas HTML:

<?php
$str = '<a href="https://www.w3schools.com">Go to w3schools.com</a>';
echo htmlentities($str);
?>
  /* Output :
HTML Output : &lt;a href=&quot;https://www.w3schools.com&quot;&gt;Go to w3schools.com&lt;/a&gt;
Browser Output : <a href="https://www.w3schools.com">Go to w3schools.com</a>

Contoh 2
Ubah beberapa karakter menjadi entitas HTML:

<?php
$str = "Albert Einstein mengatakan: 'E=MC&sup2;'";
echo html_entity_decode($str, ENT_COMPAT); // Hanya akan mengubah tanda kutip ganda
echo "<br>";
echo html_entity_decode($str, ENT_QUOTES); // Mengonversi tanda kutip ganda dan tunggal
echo "<br>";
echo html_entity_decode($str, ENT_NOQUOTES); // Tidak mengubah kutipan apa pun
?>
  /* Output : 
Output HTML (View Source): 

Albert Einstein mengatakan: 'E=MC²'<br>
Albert Einstein mengatakan: 'E=MC²'<br>
Albert Einstein mengatakan: 'E=MC²'

Output browser : 

Albert Einstein mengatakan: 'E=MC²'
Albert Einstein mengatakan: 'E=MC²'
Albert Einstein mengatakan: 'E=MC²'

Contoh 3
Ubah beberapa karakter menjadi entitas HTML menggunakan himpunan karakter Eropa Barat:

<?php
$str = "Nama saya &Oslash;yvind &Aring;sane. Saya orang Norwegia.";
echo html_entity_decode($str, ENT_QUOTES, "UTF-8");
?>

/* Output : 
Output HTML (View Source): Nama saya Øyvind Åsane. Saya orang Norwegia.
Output browser : Nama saya Øyvind Åsane. Saya orang Norwegia.

Hanifah Nurbaeti