Kadang data yang tersimpan di database sudah berbentuk entitas HTML, misalnya & alih-alih &, atau < alih-alih <. Saat ingin menampilkannya sebagai teks asli atau mengolahnya, entitas ini perlu dikembalikan. Artikel ini membahas cara mengubah entitas HTML kembali menjadi karakter di PHP.
Fungsi html_entity_decode()
<?php $teks = "5 < 10 && harga > 0"; echo html_entity_decode($teks); // "5 < 10 && harga > 0" ?>
Pasangan htmlspecialchars() dan Kebalikannya
| Arah | Fungsi | Contoh |
|---|---|---|
| Karakter → entitas | htmlspecialchars() | < menjadi < |
| Entitas → karakter | html_entity_decode() | < menjadi < |
Contoh Kasus: Menyiapkan Teks untuk Email
Judul yang disimpan dengan htmlspecialchars() untuk keamanan tampilan web perlu dikembalikan saat dikirim sebagai email teks biasa:
<?php $judul_db = "Diskon & Promo Spesial"; $subjek_email = html_entity_decode($judul_db); echo $subjek_email; // "Diskon & Promo Spesial" ?>
Peringatan Keamanan
Jangan menampilkan hasil html_entity_decode() langsung ke halaman web bila datanya berasal dari pengguna — ini bisa mengaktifkan kembali kode berbahaya (XSS). Fungsi ini untuk pengolahan teks, bukan untuk output HTML.
Kesimpulan
Gunakan html_entity_decode() untuk mengembalikan entitas HTML ke karakter aslinya, misalnya saat menyiapkan teks untuk email atau ekspor. Untuk menampilkan data pengguna di web, tetap gunakan htmlspecialchars() demi keamanan.
Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi PHP (php.net).

