Home » PHP » Fungsi String htmlspecialchars() Pada PHP

Fungsi String htmlspecialchars() Pada PHP

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Section Artikel

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 &lt;
  • > (greater than) menjadi &gt;

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

Syntax

htmlspecialchars(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;

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-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

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 &lt;b&gt;bold&lt;/b&gt; .
</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 &amp; 'Tarzan'<br>
Jane &amp; 'Tarzan'<br>
Jane &amp; '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 &quot;PHP&quot; cukup menyenangkan.
</body>
</html>

Browser Output : Mempelajari "PHP" cukup menyenangkan.

You may also like