Hướng dẫn what does htmlspecialchars do in php? - htmlspecialchars làm gì trong php?

(Php 4, Php 5, Php 7, Php 8)

HTMLSPECIALCHARS - Chuyển đổi các ký tự đặc biệt thành các thực thể HTMLConvert special characters to HTML entities

Sự mô tả

htmlspecialchars (& nbsp; & nbsp; & nbsp; & nbsp; chuỗi ________ 0, & nbsp; & nbsp; bool $double_encode = true): Chuỗi(
    string $string,
    int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,
    ?string $encoding = null,
    bool $double_encode = true
): string

Nếu chuỗi đầu vào được truyền vào chức năng này và tài liệu cuối cùng chia sẻ cùng một bộ ký tự, hàm này là đủ để chuẩn bị đầu vào để đưa vào hầu hết các bối cảnh của tài liệu HTML. Tuy nhiên, nếu đầu vào có thể biểu thị các ký tự không được mã hóa trong bộ ký tự tài liệu cuối cùng và bạn muốn giữ lại các ký tự đó (như các thực thể hoặc tên số), cả hàm này và htmlentity () (chỉ mã hóa Tương đương) có thể không đủ. Thay vào đó, bạn có thể phải sử dụng mb_encode_numericentity ().htmlentities() (which only encodes substrings that have named entity equivalents) may be insufficient. You may have to use mb_encode_numericentity() instead.

Thực hiện các bản dịch
Tính cáchThay thế
& (ampersand)&
" (trích dẫn kép)", trừ khi $flags0 được đặt$flags0 is set
$flags1 (trích dẫn đơn) $flags2 (đối với $flags3) hoặc $flags4 (đối với $flags5, $flags6 hoặc $flags7), nhưng chỉ khi $flags8 được đặt$flags3) or $flags4 (for $flags5, $flags6 or $flags7), but only when $flags8 is set
$flags9 (ít hơn)$encoding0
$encoding1 (lớn hơn)$encoding2

Thông số

$encoding3

Chuỗi đang được chuyển đổi.string being converted.

$encoding4

Một bitmask của một hoặc nhiều cờ sau, chỉ định cách xử lý các trích dẫn, chuỗi đơn vị mã không hợp lệ và loại tài liệu được sử dụng. Mặc định là $encoding5.

Có sẵn $encoding4 hằng số
Tên liên tụcSự mô tả
$encoding7 Sẽ chuyển đổi các tài khoản kép và để lại các trích dẫn đơn.
$flags8 Sẽ chuyển đổi cả trích dẫn kép và đơn.
$flags0 Sẽ để lại cả trích dẫn kép và đơn không được chuyển đổi.
null0 Âm thầm loại bỏ các chuỗi đơn vị mã không hợp lệ thay vì trả về một chuỗi trống. Sử dụng cờ này không được khuyến khích vì nó »& nbsp; có thể có ý nghĩa bảo mật.
null1 Thay thế các chuỗi đơn vị mã không hợp lệ bằng ký tự thay thế Unicode U+FFFD (UTF-8) hoặc � (nếu không) thay vì trả về một chuỗi trống.
null2 Thay thế các điểm mã không hợp lệ cho loại tài liệu đã cho bằng ký tự thay thế Unicode U+FFFD (UTF-8) hoặc � (nếu không) thay vì để chúng như là. Điều này có thể hữu ích, ví dụ, để đảm bảo tính được hình thành tốt của các tài liệu XML với nội dung bên ngoài được nhúng.
$flags3 Xử lý mã là HTML 4.01.
$flags5 Xử lý mã là XML 1.
$flags6 Xử lý mã là XHTML.
$flags7 Xử lý mã là HTML 5.
null7

Một đối số tùy chọn xác định mã hóa được sử dụng khi chuyển đổi các ký tự.

Nếu bị bỏ qua, null7 Mặc định với giá trị của tùy chọn cấu hình default_charset.

Mặc dù đối số này là tùy chọn về mặt kỹ thuật, bạn rất được khuyến khích chỉ định giá trị chính xác cho mã của bạn nếu tùy chọn cấu hình default_charset có thể được đặt không chính xác cho đầu vào đã cho.

Đối với các mục đích của chức năng này, các mã hóa null9, $double_encode0, $double_encode1, $double_encode2, $double_encode3, $double_encode4 và $double_encode5 tương đương có hiệu quả, với điều kiện là chính xác Tất cả các mã hóa này.htmlspecialchars() occupy the same positions in all of these encodings.

Các bộ ký tự sau được hỗ trợ:

CharSets được hỗ trợ
CharsetBí danhSự mô tả
ISO-8859-1ISO8859-1 Tây Âu, Latin-1.
ISO-8859-5ISO8859-5 Ít hơn sử dụng ký tự cyrillic (Latin/Cyrillic).
ISO-8859-15ISO8859-15 Tây Âu, Latin-9. Thêm dấu hiệu đồng euro, các chữ cái Pháp và Phần Lan bị thiếu trong Latin-1 (ISO-8859-1).
UTF-8& nbsp; ASCII tương thích đa byte 8 bit unicode.
CP866IBM866, 866 Charset Cyrillic dành riêng cho DOS.
CP1251Windows-1251, Win-1251, 1251 Windows dành riêng cho Cyrillic Charset.
CP1252Windows-1252, 1252 Windows Charset cụ thể cho Tây Âu.
Koi8-rKoi8-Ru, Koi8r Tiếng Nga.
5 LỚN950 Trung Quốc truyền thống, chủ yếu được sử dụng ở Đài Loan.
GB2312936 Đơn giản hóa Trung Quốc, bộ nhân vật tiêu chuẩn quốc gia.
BIG5-HKSCS& nbsp; ASCII tương thích đa byte 8 bit unicode.
CP866IBM866, 866 Charset Cyrillic dành riêng cho DOS.
CP1251Windows-1251, Win-1251, 1251 Charset Cyrillic dành riêng cho DOS.
CP1251& nbsp; ASCII tương thích đa byte 8 bit unicode.
CP866& nbsp; ASCII tương thích đa byte 8 bit unicode.nl_langinfo() and setlocale()), in this order. Not recommended.

CP866: Any other character sets are not recognized. The default encoding will be used instead and a warning will be emitted.

IBM866, 866

Charset Cyrillic dành riêng cho DOS.

Trả về giá trị

Chuỗi được chuyển đổi.string.

Nếu đầu vào $encoding3 chứa chuỗi đơn vị mã không hợp lệ trong null7 đã cho, một chuỗi trống sẽ được trả về, trừ khi các cờ null0 hoặc null1 được đặt.null0 or null1 flags are set.

Thay đổi

Phiên bảnSự mô tả
8.1.0 $encoding4 đã thay đổi từ $encoding7 thành $flags8 | null1 | $flags3.$encoding7 to $flags8 | null1 | $flags3.

Ví dụ

Ví dụ #1 htmlspecialchars () Ví dụhtmlspecialchars() example

true9

Ghi chú

Ghi chú::

Lưu ý rằng chức năng này không dịch bất cứ điều gì ngoài những gì được liệt kê ở trên. Đối với bản dịch thực thể đầy đủ, xem HTMLENTITY ().htmlentities().

Ghi chú::

Lưu ý rằng chức năng này không dịch bất cứ điều gì ngoài những gì được liệt kê ở trên. Đối với bản dịch thực thể đầy đủ, xem HTMLENTITY ().

  • Trong trường hợp giá trị $encoding4 mơ hồ, các quy tắc sau được áp dụng:$encoding7, $flags8, $flags0 is present, the default is $flags0.
  • Khi không có $encoding7, $flags8, $flags0, mặc định là ____10.$encoding7, $flags8, $flags0 is present, $flags8 takes the highest precedence, followed by $encoding7.
  • Khi có nhiều hơn một trong số $encoding7, $flags8, $flags0, $flags8 có quyền ưu tiên cao nhất, tiếp theo là $encoding7.$flags3, $flags7, $flags6, $flags5 is present, the default is $flags3.
  • Khi cả $flags3, $flags7, $flags6, $flags5 không có mặt, mặc định là $flags3.$flags3, $flags7, $flags6, $flags5 is present, $flags7 takes the highest precedence, followed by $flags6, $flags5 and $flags3.
  • Khi có hơn một trong số $flags3, $flags7, $flags6, $flags5 có mặt, $flags7 có quyền ưu tiên cao nhất, tiếp theo là $flags6, $flags5 và $flags3.null2, null0, null1 are present, null0 takes the highest precedence, followed by null1.

Khi có hơn một trong số null2, null0, null1 có mặt, null0 có quyền ưu tiên cao nhất, tiếp theo là null1.

  • Xem thêm
  • get_html_translation_table () - Trả về bảng dịch được sử dụng bởi htmlspecialchars và htmlentities
  • htmlspecialchars_decode () - Chuyển đổi các thực thể HTML đặc biệt trở lại các ký tự
  • Strip_tags () - Thẻ HTML và PHP thoát khỏi chuỗi từ một chuỗi
  • HTMLENTITY () - Chuyển đổi tất cả các ký tự áp dụng thành các thực thể HTML

nl2br () - chèn dòng HTML bị hỏng trước tất cả các dòng mới trong một chuỗi

Dave ¶

"8

"9

"0

"1

"2

9 năm trước

Dave ¶

"3

"4

"5

"6

"7

9 năm trước

Mike Robinson ¶

"8

"9

$flags00

$flags01

"2

Thomasvdbulk tại gmail dot com ¶

11 năm trước

$flags03

$flags04

$flags05

$flags06

$flags07

$flags08

Aschmidt tại Anamera Dot Net

1 năm trước

$flags09

$flags10

"2

Kenneth Kin Lum ¶

14 năm trước

$flags12

Felix D. ¶

Mike Robinson ¶

$flags13

Thomasvdbulk tại gmail dot com ¶

11 năm trước

$flags14

$flags15

$flags16

$flags17

Thomasvdbulk tại gmail dot com ¶

11 năm trước

$flags18

$flags19

$flags20

$flags21

$flags22

$flags23

$flags24

$flags25

"2

Aschmidt tại Anamera Dot Net

1 năm trước

$flags27

$flags28

$flags29

$flags28

$flags31

$flags32

"2

Kenneth Kin Lum ¶

14 năm trước

$flags34

$flags35

"2

Felix D. ¶

8 năm trước

$flags37

$flags38

$flags39

$flags40

$flags41

"2

Ivan tại Lutrov dot com

Ẩn danh ¶

$flags43

$flags44

$flags45

$flags46

$flags47

$flags48

"2

13 năm trước

Dave ¶

$flags50

$flags51

$flags52

$flags53

$flags54

$flags55

$flags56

$flags57

$flags58

$flags59

$flags60

$flags61

$flags62

$flags63

$flags64

$flags65

"2

9 năm trước

1 năm trước

$flags67

$flags68

$flags69

$flags70

$flags71

$flags72

$flags73

$flags74

"2

Kenneth Kin Lum ¶

14 năm trước

$flags76

$flags77

$flags78

$flags79

$flags80

$flags81

"2

Felix D. ¶

Dave ¶

$flags83

$flags84

$flags85

$flags86

$flags87

$flags88

$flags89

"2

9 năm trước

Mike Robinson ¶

$flags91

$flags92

"2

Thomasvdbulk tại gmail dot com ¶

11 năm trước

$flags94

Aschmidt tại Anamera Dot Net

1 năm trước

$flags95

$flags96

$flags97

"2

Thomasvdbulk tại gmail dot com ¶

11 năm trước

$flags99

Khi nào tôi nên sử dụng htmlspecialchars?

Bạn sử dụng htmlspecialchars mỗi khi bạn xuất nội dung trong HTML, do đó, nó được hiểu là nội dung chứ không phải HTML. Nếu bạn cho phép nội dung được coi là HTML, bạn vừa mở cửa cho các lỗi ở mức tối thiểu và tổng số vụ hack XSS ở mức tồi tệ nhất.EVERY time you output content within HTML, so it is interpreted as content and not HTML. If you allow content to be treated as HTML, you have just opened the door to bugs at a minimum, and total XSS hacks at worst.

HTMLSpecarchars là gì?

Hàm HTMLSpecarchars trong PHP được sử dụng để chuyển đổi 5 ký tự thành các thực thể HTML tương ứng nếu có.Nó được sử dụng để mã hóa đầu vào của người dùng trên một trang web để người dùng không thể chèn mã HTML có hại vào một trang web.used to convert 5 characters into corresponding HTML entities where applicable. It is used to encode user input on a website so that users cannot insert harmful HTML codes into a site.

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

HTMLENTITY - Chuyển đổi tất cả các ký tự áp dụng thành các thực thể HTML.HTMLSPECIALCHARS - Chuyển đổi các ký tự đặc biệt thành các thực thể HTML.

HTMLSpecialchars có ngăn xSS không?

Sử dụng hàm htmlspecialchars () - hàm htmlspecialchars () chuyển đổi các ký tự đặc biệt thành các thực thể HTML.Đối với phần lớn các ứng dụng web, chúng ta có thể sử dụng phương pháp này và đây là một trong những phương pháp phổ biến nhất để ngăn chặn XSS.Quá trình này còn được gọi là HTML thoát ra.this is one of the most popular methods to prevent XSS. This process is also known as HTML Escaping.