Sự khác biệt giữa htmlentities() và htmlspecialchars() là gì?

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ụng

Cá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
bộ ký tựTùy chọn. Một chuỗi chỉ định bộ ký tự nào sẽ sử dụng

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 đổi

Nế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[]



Example #2 htmlentities[]



htmlspecialchars[] Function

The htmlspecialchars[] function is an inbuilt function in PHP which is used to convert all predefined characters to HTML entities.
Hàm htmlspecialchars[] chuyển đổi một số ký tự được xác định trước thành các thực thể HTML.

Ví dụ #1
?php

Đầ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

Sự khác biệt giữa các thực thể HTML [] và Htmlspecialchars [] là gì?

?> Sự khác nhau giữa hàm htmlentities[] và htmlspecialchars[]. Sự khác biệt duy nhất giữa các hàm này là hàm htmlspecialchars[] chuyển đổi các ký tự đặc biệt thành các thực thể HTML trong khi hàm 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 Htmlspecialchars[] là gì?

Hàm htmlspecialchars[] chuyển đổi các ký tự đặc biệt thành các thực thể HTML. Đây là chức năng có sẵn của PHP, giúp chuyển đổi tất cả các ký tự được xác định trước thành các thực thể HTML

Hàm Htmlspecialchars[] giải thích bằng ví dụ là gì?

Hàm htmlspecialchars[] được sử dụng để chuyển đổi các ký tự đặc biệt [ e. g. & [dấu và], " [dấu nháy kép], ' [dấu nháy đơn], < [nhỏ hơn], > [lớn hơn]] thành các thực thể HTML [ i. e. & [dấu và] trở thành &, ' [trích dẫn đơn] trở thành ', < [nhỏ hơn] trở thành < [lớn hơn] trở thành > ]

Tại sao chúng ta sử dụng các thực thể HTML trong PHP?

Hàm htmlentities[] chuyển đổi ký tự thành thực thể HTML . Mẹo. Để chuyển đổi các thực thể HTML trở lại ký tự, hãy sử dụng hàm html_entity_decode[]. Mẹo. Sử dụng hàm get_html_translation_table[] để trả về bảng dịch được sử dụng bởi htmlentities[].

Chủ Đề