Hàm html_entity_decode() trong PHP
Mô hình
Chuyển đổi HTML entity thành ký tự:
<?php $str = "<© W3Sçh°°¦§>"; echo html_entity_decode($str); ?>
Mã HTML đầu ra của đoạn mã trên như sau (xem mã nguồn):
<!DOCTYPE html> <html> <body> <? W3S?h????> </body> </html>
Kết quả đầu ra của mã trên trình duyệt:
<? W3S?h????>
Định nghĩa và cách sử dụng
html_entity_decode() chuyển đổi các thể hiện HTML thành ký tự.
html_entity_decode() là hàm htmlentities() Hàm ngược lại của hàm.
Cú pháp
html_entity_decode(string,flags,character-set)
Tham số | Mô tả |
---|---|
string | Bắt buộc. Quy định chuỗi cần giải mã. |
flags |
Tùy chọn. Quy định cách xử lý dấu ngoặc và loại tài liệu nào được sử dụng. Loại dấu ngoặc có sẵn:
Quy định các flag bổ sung cho loại tài liệu được sử dụng:
|
character-set |
Tùy chọn. Giá trị chuỗi, quy định tập hợp ký tự cần sử dụng. Giá trị được phép:
Ghi chú:Trong các phiên bản PHP 5.4 trước, các tập hợp ký tự không thể nhận diện sẽ bị bỏ qua và được thay thế bằng ISO-8859-1. Từ PHP 5.4 trở đi, các tập hợp ký tự không thể nhận diện sẽ bị bỏ qua và được thay thế bằng UTF-8. |
Chi tiết kỹ thuật
Trả về giá trị: | Trả về chuỗi đã được chuyển đổi |
Phiên bản PHP: | 4.3.0+ |
Lịch sử cập nhật:
Phiên bản | Mô tả |
---|---|
PHP 5 | character-set Giá trị mặc định của tham số đã thay đổi thành UTF-8. |
PHP 5.4 |
Đã thêm các flag bổ sung để quy định loại tài liệu mà bảng dịch mã áp dụng:
|
PHP 5.3.4 | Đã thêm hỗ trợ cho mã hóa đa byte. |
Thử nghiệm thêm
Ví dụ 1
Chuyển đổi HTML entity thành ký tự:
<?php $str = "Bill & 'Steve'"; echo html_entity_decode($str, ENT_COMPAT); // Chỉ chuyển đổi dấu ngoặc kép echo "<br>"; echo html_entity_decode($str, ENT_QUOTES); // Chuyển đổi dấu ngoặc kép và dấu ngoặc đơn echo "<br>"; echo html_entity_decode($str, ENT_NOQUOTES); // Không chuyển đổi bất kỳ dấu ngoặc kép nào ?>
Kết quả đầu ra HTML của mã trên (xem mã nguồn):
<!DOCTYPE html> <html> <body> Bill & 'Steve'<br> Bill & 'Steve'<br> Bill & 'Steve' </body> </html>
Kết quả đầu ra của mã trên trình duyệt:
Bill & 'Steve' Bill & 'Steve' Bill & 'Steve'
Ví dụ 2
Chuyển đổi HTML entity thành ký tự bằng cách sử dụng bảng mã西 Âu:
<?php $str = "My name is Øyvind Åsane. I'm Norwegian."; echo html_entity_decode($str, ENT_QUOTES, "ISO-8859-1"); ?>
Kết quả đầu ra HTML của mã trên (xem mã nguồn):
<!DOCTYPE html> <html> <body> Tên của tôi là ?yvind ?sane. Tôi là người Na Uy. </body> </html>
Kết quả đầu ra của mã trên trình duyệt:
Tên của tôi là ?yvind ?sane. Tôi là người Na Uy.