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
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 Enkode tidak valid: ENT_IGNORE – Mengabaikan pengkodean yang tidak valid alih-alih membuat fungsi mengembalikan string kosong. Harus dihindari, karena mungkin memiliki implikasi keamanan. Flags tambahan untuk menentukan doctype yang digunakan: ENT_HTML401 – Default. Tangani kode sebagai HTML 4.01 |
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 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 |
Detail Teknis
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 |
4+ |
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.