Home » PHP » Các hàm trong PHP » Hàm xử lý chuỗi trong PHP » html_entity_decode – Chuyển ký tự từ thực thể HTML sang ứng dụng
Ví dụ và cách sử dụng hàm html_entity_decode để chuyển ký tự từ thực thể HTML (HTML entity) sang ứng dụng trong PHP.

html_entity_decode – Chuyển ký tự từ thực thể HTML sang ứng dụng

(PHP 4 >= 4.3.0, PHP 5)
html_entity_decode – Chuyển ký tự từ thực thể HTML sang ứng dụng

Miêu tả hàm html_entity_decode

html_entity_decode() là hàm ngược với htmlentities(), nó chuyển tất cả ký tự từ thực thể HTML (HTML entity) sang ứng dụng.

Chính xác hơn, hàm này giải mã tất cả các thực thể (bao gồm tất cả thực thể số) đó là:

a) nhất thiết phải hợp lệ dành cho một số kiểu tài liệu –  ví dụ, cho XML, hàm này không giải mãi các thực thể đã được định định nghĩa trong một số DTD (Document Type Definition – kiểu tài liệu dùng để định nghĩa các kiểu dữ liệu cho các phân tử trong tài liệu XML).

b) Một hoặc nhiều ký tự trong bộ ký tự mã hóa kết hợp với chọn bảng mã và được cho phép kiểu tài liệu được chọn. Tất cả các thực thể khác sẽ bị bỏ qua.

Tham số

string

Chuỗi ký đầu vào.

flags

Sử dụng một hoặc nhiều hằng số được quy định ở bảng dưới đây cho tham số $flags. Mặc địch là ENT_COMPAT | ENT_HTML401.

Hằng số có sẵn trong tham số flags

Tên hằng sốMiêu tả
ENT_COMPATChuyển đổi dấu nháy kép ("), không chuyển dấu nháy đơn (').
ENT_QUOTESChuyển đổi cả dấu nháy kép (") và dấu nháy đơn (').
ENT_NOQUOTESKhông chuyển cả dấu nháy kép (") lẫn dấu nháy đơn (').
ENT_HTML401Dành cho HTML 4.01.
ENT_XML1Dành cho XML 1.
ENT_XHTMLDành cho XHTML.
ENT_HTML5Dành cho HTML 5.

encoding

Một tham số tùy chọn để định nghĩa bảng mã sẽ được sử dụng khi chuyển đổi chuỗi ký tự.

Nếu không điền, giá trị mặc định của bảng mã sẽ phụ thuộc vào phiên bản PHP đang được sử dụng. Trong PHP 5.6 trở về sau, tùy chọn cấu hình default_charset sẽ được sử dụng là giá trị mặc định. PHP 5.4 và 5.5 sẽ sử dụng mặc định là UTF-8. Những phiên bản PHP trước sẽ sử dụng ISO-8859-1.

Mặc dù tham số này là tùy chọn kỹ thuật nhưng bạn nên điền đúng mã mà bạn cần sử dụng nếu bạn dùng PHP 5.5 trở về trước, hoặc nếu tùy chọn cấu hình default_charset không được cấu hình đúng bảng mã bạn cần.

Những mã sau được hỗ trợ:

Những mã được hỗ trợ

Tên gọi khácMiêu tả
ISO-8859-1ISO8859-1Tây Âu, Latin-1
ISO-8859-5ISO8859-5Latin/Cyrillic
ISO-8859-15ISO8859-15Tây Âu, Latin-9. Thêm ký hiệu Euro, chữ Pháp và Phần Lan bị thiếu trong Latin-1 (ISO-8859-1).
UTF-8ASCII tương thích với multi-byte trong Unicode 8-bit.
cp866ibm866, 866Mã Cyrillic đặc trưng của DOS.
cp1251Windows-1251, win-1251, 1251Mã Cyrillic đặc trưng của Windows
cp1252Windows-1252, 1252Mã đặc trưng của Windows cho Tây Âu.
KOI8-Rkoi8-ru, koi8rNga
BIG5950Chữ Trung Quốc phồn thể, chủ yếu được sử dụng ở Đài Loan.
GB2312936Chữ Trung Quốc giản thể, mã chuẩn quốc gia.
BIG5-HKSCSBig5 với phần mở rộng dành cho Hong Kong, chữ Trung Quốc phồn thể.
Shift_JISSJIS, SJIS-win, cp932, 932Chữ Nhật Bản.
EUC-JPEUCJP, eucJP-winChữ Nhật Bản.
MacRomanMã được sử dụng bởi hệ điều hành Mac.
''Một chuỗi rỗng kích hoạt tìm từ bảng mã script (Zend multibyte), default_charset và địa phương hiện tại (xem thêm nl_langinfo() và setlocale()). Không khuyến khích sử dụng.
Lưu ý: Bất kỳ bảng mã nào nằm ngoài những mã kể trên đều không được chấp nhận. Trường hợp này mã mặc định sẽ được sử dụng và sẽ xuất hiện một cảnh bảo.

Giá trị trả về

Trả về chuỗi đã được giải mã.

Ví dụ

Ví dụ 1 về hàm html_entity_decode()

Lưu ý

Bạn có thể tự hỏi tại sao khi sử dụng trim(html_entity_decode(‘ ’)); đầu ra không phải là một chuỗi trống? Đó là vì ‘ ’ không phải là mã ASCII 32 (hàm trim() chỉ thực thi với mã này) mà là mã ASCII 160 (0xa0) trong mã ISO 8859-1 mặc định .

About admin

Leave a Reply

Your email address will not be published. Required fields are marked *

*