Definisi dan Penggunaan
Fungsi htmlspecialchars()
dapat digunakan untuk mengubah beberapa karakter yang telah ditentukan menjadi entitas HTML.
Karakter yang telah ditentukan sebelumnya adalah:
- & (ampersand) menjadi &
- ” (double quote) menjadi "
- ‘ (single quote) menjadi ‘
- < (less than) menjadi <
- > (greater than) menjadi >
Tip: Untuk mengubah entitas HTML khusus kembali menjadi karakter, gunakan fungsi htmlspecialchars_decode()
.
Syntax
htmlspecialchars(string,flags,character-set,double_encode)
Nilai Parameter
Parameter | Deskripsi |
---|---|
string | Required. Menentukan string yang akan diubah |
flags | Optional. 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; Flags 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-set | Optional. 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_encode | Optional. 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 Jika string berisi encoding yang tidak valid, ia 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 karakter yang telah ditentukan “<” (kurang dari) dan “>” (lebih dari) menjadi entitas HTML:
<?php $str = "Ini merupakan teks <b>bold</b> ."; echo htmlspecialchars($str); ?> /* Output : Html Output (View Source) : <!DOCTYPE html> <html> <body> Ini merupakan teks <b>bold</b> . </body> </html> Browser Output : Ini merupakan teks <b>bold</b> .
Contoh 2
Ubah beberapa karakter yang telah ditentukan menjadi entitas HTML:
<?php $str = "Jane & 'Tarzan'"; echo htmlspecialchars($str, ENT_COMPAT); // Hanya akan mengubah tanda kutip ganda echo "<br>"; echo htmlspecialchars($str, ENT_QUOTES); // Mengonversi tanda kutip ganda dan tunggal echo "<br>"; echo htmlspecialchars($str, ENT_NOQUOTES); // Does not convert any quotes ?> /* Output : Html Output (View Source): <!DOCTYPE html> <html> <body> Jane & 'Tarzan'<br> Jane & 'Tarzan'<br> Jane & 'Tarzan' </body> </html> Browser Output : Jane & 'Stark' Jane & 'Stark' Jane & 'Stark'
Contoh 3
Ubah tanda kutip ganda menjadi entitas HTML:
<?php $str = 'Mempelajari "PHP" cukup menyenangkan.'; echo htmlspecialchars($str, ENT_QUOTES); //Mengonversi tanda kutip ganda dan tunggal ?> /* Output : Html Output (View Source): <!DOCTYPE html> <html> <body> Mempelajari "PHP" cukup menyenangkan. </body> </html> Browser Output : Mempelajari "PHP" cukup menyenangkan.