Chức năng PHP htmlentities()
Mô hình
Chuyển đổi ký tự thành các ký tự HTML:
<?php $str = "<? W3S?h????>"; echo htmlentities($str); ?>
Kết quả đầu ra HTML của 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
chức năng htmlentities() để chuyển đổi ký tự thành ký tự HTML thực thể.
Lưu ý:Để chuyển đổi các ký tự HTML thực thể trở lại ký tự, hãy sử dụng html_entity_decode() chức năng.
Lưu ý:Vui lòng sử dụng get_html_translation_table() Chức năng để trả về bảng dịch mã được sử dụng bởi function htmlentities().
Cú pháp
htmlentities(string,flags,character-set,double_encode)
Tham số | Mô tả |
---|---|
string | Bắt buộc. Quy định chuỗi cần chuyển đổi. |
flags |
Chọn. Quy định cách xử lý dấu ngoặc kép, mã không hợp lệ và loại tài liệu cần sử dụng. Các loại dấu ngoặc kép có sẵn:
Mã không hợp lệ:
Các flag thêm quy định loại tài liệu cần sử dụng:
|
character-set |
Chọn. Một chuỗi quy định bộ ký tự cần sử dụng. Giá trị được phép:
Ghi chú:Trong các phiên bản PHP trước 5.4, 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. |
double_encode |
Tùy chọn. Giá trị boolean, quy định có mã hóa các ký tự HTML đã tồn tại hay không.
|
Chi tiết kỹ thuật
Trả về giá trị: |
Trả về chuỗi đã được chuyển đổi. Nếu string Nếu bao gồm mã hóa không hợp lệ, sẽ trả về một chuỗi rỗng, trừ khi đã thiết lập các dấu hiệu ENT_IGNORE hoặc ENT_SUBSTITUTE. |
Phiên bản PHP: | 4+ |
Nhật ký cập nhật: |
Trong PHP 5,character-set Giá trị mặc định của tham số thay đổi thành UTF-8. Trong PHP 5.4, đã thêm: ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 và ENT_XHTML. Trong PHP 5.3, đã thêm ENT_IGNORE. Trong PHP 5.2.3, đã thêm: double_encode Tham số. Trong PHP 4.1, đã thêm: character-set Tham số. |
Các ví dụ khác
Ví dụ 1
Chuyển đổi ký tự thành các ký tự HTML:
<?php $str = "Bill & 'Steve'"; echo htmlentities($str, ENT_COMPAT); // Chỉ chuyển đổi dấu ngoặc kép echo "<br>"; echo htmlentities($str, ENT_QUOTES); // Chuyển đổi dấu ngoặc kép và dấu ngoặc đơn echo "<br>"; echo htmlentities($str, ENT_NOQUOTES); // Không chuyển đổi bất kỳ dấu ngoặc nào ?>
Kết quả đầu ra HTML của mã trên như sau (xem mã nguồn):
<!DOCTYPE html> <html> <body> Bill & 'Steve'<br> Bill & 'Tarzan'<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
Dùng bộ mã hóa Western European để chuyển đổi một số ký tự thành ký tự HTML:
<?php $str = "Tên của tôi là ?yvind ?sane. Tôi là người Na Uy."; echo htmlentities($str, ENT_QUOTES, "ISO-8859-1"); // Chỉ chuyển đổi dấu ngoặc kép (không phải dấu ngoặc đơn), và sử dụng bộ mã hóa Western European ?>
Kết quả đầu ra HTML của mã trên như sau (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.