(PHP 4, PHP 5)
htmlentities – Chuyển ký tự từ ứng dụng sang thực thể HTML (HTML entity)
Miêu tả hàm htmlentities
1 |
string htmlentities ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] ) |
Nếu bạn muốn giải mã (dịch ngược) sang ký tự ứng dụng bạn có thể dùng html_entity_decode().
Tham số
string
Chuỗi đầu vào.
flags
Sử dụng một hoặc nhiều hằng số cho tham số $flags để quy định việc xử lý các dấu nháy, trình tự mã và kiểu tài liệu được sử dụng. 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_COMPAT | Chuyển đổi dấu nháy kép ("), không chuyển dấu nháy đơn ('). |
ENT_QUOTES | Chuyển đổi cả dấu nháy kép (") và dấu nháy đơn ('). |
ENT_NOQUOTES | Không chuyển cả dấu nháy kép (") lẫn dấu nháy đơn ('). |
ENT_IGNORE | Âm thầm loại bỏ các đơn vị mã không hợp lệ thay vì trả về một chuỗi rỗng. Không khuyến khích sử dụng tham số này vì nó có thể gặp vấn đề về bảo mật. |
ENT_SUBSTITUTE | Thay thế chuỗi đơn vị mã không hợp lệ với một ký tự Unicode thay thế U + FFFD (UTF-8) hoặc & # FFFD; thay vì trả về một chuỗi rỗng. |
ENT_DISALLOWED | Thay thế mã không hợp lệ với kiểu tài liệu được đưa ra bằng một ký tự Unicode thay thế U+FFFD (UTF-8) hoặc &#FFFD; thay vì bỏ qua chúng. Điều này có thể giúp ích cho bạn trong một số trường hợp, chẳng hạn, giữ cho tài liệu XML vẫn đúng định dạng với nội dung được nhúng từ một nguồn bên ngoài. |
ENT_HTML401 | Dành cho HTML 4.01. |
ENT_XML1 | Dành cho XML 1. |
ENT_XHTML | Dành cho XHTML. |
ENT_HTML5 | Dà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ợ
Mã | Tên gọi khác | Miêu tả |
---|---|---|
ISO-8859-1 | ISO8859-1 | Tây Âu, Latin-1 |
ISO-8859-5 | ISO8859-5 | Latin/Cyrillic |
ISO-8859-15 | ISO8859-15 | Tâ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-8 | ASCII tương thích với multi-byte trong Unicode 8-bit. | |
cp866 | ibm866, 866 | Mã Cyrillic đặc trưng của DOS. |
cp1251 | Windows-1251, win-1251, 1251 | Mã Cyrillic đặc trưng của Windows |
cp1252 | Windows-1252, 1252 | Mã đặc trưng của Windows cho Tây Âu. |
KOI8-R | koi8-ru, koi8r | Nga |
BIG5 | 950 | Chữ Trung Quốc phồn thể, chủ yếu được sử dụng ở Đài Loan. |
GB2312 | 936 | Chữ Trung Quốc giản thể, mã chuẩn quốc gia. |
BIG5-HKSCS | Big5 với phần mở rộng dành cho Hong Kong, chữ Trung Quốc phồn thể. | |
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Chữ Nhật Bản. |
EUC-JP | EUCJP, eucJP-win | Chữ Nhật Bản. |
MacRoman | Mã đượ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. |
double_encode
Khi tham số $double_encode không được sử dụng, PHP sẽ không mã hóa lại lần 2 những thực thể HTML đã tồn tại. Mặc định, hàm này sẽ mã hóa toàn bộ.
Giá trị trả về
Trả về chuỗi đã được mã hóa sang thực thể HTML.
Nếu chuỗi đầu vào chứa đơn vị mã không hợp lệ hàm sẽ trả về một chuỗi rỗng, nếu tham số $flags không có hằng số ENT_IGNORE hoặc ENT_SUBSTITUTE.
Ví dụ
Ví dụ 1 về hàm htmlentities()
1 2 3 4 5 6 7 8 9 |
<?php $str = "A 'quote' is <b>bold</b>"; // In ra: A 'quote' is <b>bold</b> echo htmlentities($str); // In ra: A 'quote' is <b>bold</b> echo htmlentities($str, ENT_QUOTES); ?> |
Ví dụ 2 về hàm htmlentities() với tham số $flags là ENT_IGNORE
1 2 3 4 5 6 7 8 9 |
<?php $str = "\x8F!!!"; // In ra một chuỗi rỗng echo htmlentities($str, ENT_QUOTES, "UTF-8"); // In ra "!!!" echo htmlentities($str, ENT_QUOTES | ENT_IGNORE, "UTF-8"); ?> |