Mẹo. Để chuyển đổi các thực thể HTML đặc biệt trở lại thành các ký tự, hãy sử dụng hàm htmlspecialchars_decode[]
cú pháp
htmlký tự đặc biệt[chuỗi,cờ,bộ ký tự,double_encode]
Giá trị tham số
Tham sốChuỗi mô tảBắt buộc. Chỉ định chuỗi để convertflagsOptional. Chỉ định cách xử lý dấu ngoặc kép, mã hóa không hợp lệ và loại tài liệu được sử dụngCác kiểu trích dẫn có sẵn là
- ENT_COMPAT - Mặc định. Chỉ mã hóa dấu ngoặc kép
- ENT_QUOTES - Mã hóa dấu ngoặc kép và dấu nháy đơn
- ENT_NOQUOTES - Không mã hóa bất kỳ trích dẫn nào
mã hóa không hợp lệ
- ENT_IGNORE - Bỏ qua mã hóa không hợp lệ thay vì để hàm trả về chuỗi rỗng. Nên tránh, vì nó có thể có ý nghĩa bảo mật
- ENT_SUBSTITUTE - Thay thế mã hóa không hợp lệ cho một bộ ký tự được chỉ định bằng Ký tự thay thế Unicode U+FFFD [UTF-8] hoặc FFFD;
- ENT_DISALLOWED - Thay thế các điểm mã không hợp lệ trong loại tài liệu đã chỉ định bằng Ký tự thay thế Unicode U+FFFD [UTF-8] hoặc FFFD;
Các cờ bổ sung để chỉ định loại tài liệu đã sử dụng
- ENT_HTML401 - Mặc định. Xử lý mã dưới dạng HTML 4. 01
- ENT_HTML5 - Xử lý mã dưới dạng HTML 5
- ENT_XML1 - Xử lý mã dưới dạng XML 1
- ENT_XHTML - Xử lý mã dưới dạng XHTML
Các giá trị được phép là
- UTF-8 - Mặc định. Unicode 8 bit tương thích nhiều byte tương thích ASCII
- ISO-8859-1 - Tây Âu
- ISO-8859-15 - Tây Âu [thêm ký hiệu Euro + chữ cái tiếng Pháp và tiếng Phần Lan bị thiếu trong ISO-8859-1]
- cp866 - Bộ ký tự Cyrillic dành riêng cho DOS
- cp1251 - Bộ ký tự Cyrillic dành riêng cho Windows
- cp1252 - Bộ ký tự dành riêng cho Windows cho Tây Âu
- KOI8-R - Nga
- BIG5 - Tiếng Trung phồn thể, chủ yếu dùng ở Đài Loan
- GB2312 - Tiếng Trung giản thể, bộ ký tự chuẩn quốc gia
- BIG5-HKSCS - Big5 với phần mở rộng Hồng Kông
- Shift_JIS - Tiếng Nhật
- EUC-JP - Tiếng Nhật
- MacRoman - Bộ ký tự được Mac OS sử dụng
Ghi chú. Các bộ ký tự không được nhận dạng sẽ bị bỏ qua và được thay thế bằng ISO-8859-1 trong các phiên bản trước PHP 5. 4. Kể từ PHP 5. 4, nó sẽ bị bỏ qua và được thay thế bằng UTF-8
double_encodeTùy chọn. Một giá trị boolean chỉ định có mã hóa các thực thể html hiện có hay không- ĐÚNG - Mặc định. Sẽ chuyển đổi mọi thứ
- SAI - Sẽ không mã hóa các thực thể html hiện có
chi tiết kỹ thuật
Giá trị trả về. Trả về chuỗi đã chuyển đổiNếu chuỗi chứa mã hóa không hợp lệ, nó sẽ trả về một chuỗi trống, trừ khi cờ ENT_IGNORE hoặc ENT_SUBSTITUTE được đặt
Trong khi htmlentities chuyển đổi “tất cả các ký tự có thể áp dụng thành các thực thể HTML”, thì htmlspecialchars[] chỉ chuyển đổi…
- '&' [dấu và] trở thành '&'
- ‘”‘ [dấu ngoặc kép] trở thành ‘”’ khi không đặt
ENT_NOQUOTES
- “‘” [trích dẫn đơn] trở thành ‘'’ [hoặc '] chỉ khi đặt
ENT_QUOTES
- '' [lớn hơn] trở thành '>'
như được tham chiếu từ hướng dẫn sử dụng PHP
Cả hai chức năng được sử dụng để thực hiện 'thoát đầu ra' để làm cho trang web an toàn hơn trước các cuộc tấn công tập lệnh chéo trang. Tuy nhiên, cuốn sách Essential PHP Security nói rằng…
Sự khác biệt giữa htmlentities[] và htmlspecialchars[] trong PHP là gì
Hàm htmlentities[]
htmlentities — Chuyển đổi tất cả các ký tự có thể áp dụng thành các thực thể HTML.
Hàm htmlentities[] là một hàm có sẵn trong PHP, dùng để biến đổi tất cả các ký tự có thể áp dụng cho các thực thể HTML. Hàm này chuyển đổi tất cả các ký tự có thể áp dụng cho thực thể HTML.
Cú pháp
htmlentities [ string $string [, int $flags = ENT_COMPAT. ENT_HTML401 [, string $encoding = ini_get[“default_charset”] [, bool $double_encode = TRUE ]]] ]. chuỗi
Ví dụ #1 htmlentities[]
Đầu ra trình duyệt của đoạn mã trên sẽ là
Đây là một số văn bản in đậm