chuỗi htmlspecialchars [ chuỗi $string
[, int $flags
= ENT_COMPAT. ENT_HTML401 [, chuỗi $encoding
= ini_get["default_charset"] [, bool $double_encode
= true ]]] ]
Nếu chuỗi đầu vào được chuyển đến hàm này và tài liệu cuối cùng có chung bộ ký tự, thì hàm này đủ để chuẩn bị đầu vào để đưa vào hầu hết các ngữ cảnh của tài liệu HTML. Tuy nhiên, nếu đầu vào có thể đại diện cho các ký tự không được mã hóa trong bộ ký tự cuối cùng của tài liệu và bạn muốn giữ lại các ký tự đó [dưới dạng thực thể số hoặc thực thể được đặt tên], cả hàm này và htmlentities[] [chỉ mã hóa các chuỗi con có thực thể được đặt tên . Thay vào đó, bạn có thể phải sử dụng mb_encode_numericentity[]
Các bản dịch đã thực hiện CharacterReplacement& [dấu và]&" [dấu nháy kép]", trừ khiENT_NOQUOTES
được đặt' [dấu nháy đơn]' [dành cho ENT_HTML401
] hoặc ' [dành cho ENT_XML1
, ENT_XHTML
hoặc ENT_HTML5
], nhưng chỉ khi đặt ENT_QUOTES
< [nhỏ hơn]< Thông số
$flags
0Chuỗi đang được chuyển đổi
$flags
1Mặt nạ bit của một hoặc nhiều cờ sau, chỉ định cách xử lý dấu ngoặc kép, 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à ENT_COMPAT. ENT_HTML401
Có sẵn$flags
1 hằng Tên hằng Mô tả$flags
3Sẽ chuyển đổi dấu ngoặc kép và để nguyên dấu ngoặc đơn. ENT_QUOTES
Sẽ chuyển đổi cả dấu nháy kép và dấu nháy đơn. ENT_NOQUOTES
Sẽ không chuyển đổi cả dấu ngoặc kép và dấu ngoặc đơn. $flags
6Thầm lặng 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ó. $flags
7Thay 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. $flags
8Thay thế các điểm mã không hợp lệ cho loại tài liệu nhất định bằng Ký tự thay thế Unicode U+FFFD [UTF-8] hoặc � [nếu không] thay vì để nguyên như vậy. Điều này có thể hữu ích, ví dụ, để đảm bảo định dạng tốt của các tài liệu XML với nội dung bên ngoài được nhúng. ENT_HTML401
Xử lý mã dưới dạng HTML 4. 01. ENT_XML1
Xử lý mã dưới dạng XML 1. ENT_XHTML
Xử lý mã dưới dạng XHTML. ENT_HTML5
Xử lý mã dưới dạng HTML 5. $encoding
3Đối số tùy chọn xác định mã hóa được sử dụng khi chuyển đổi ký tự
Nếu bỏ qua, giá trị mặc định của $encoding
3 thay đổi tùy thuộc vào phiên bản PHP được sử dụng. Trong PHP5. 6 trở lên, tùy chọn cấu hình được sử dụng làm giá trị mặc định. PHP5. 4 và 5. 5 sẽ sử dụng UTF-8 làm mặc định. Các phiên bản trước của PHP sử dụng ISO-8859-1
Mặc dù đối số này là tùy chọn về mặt kỹ thuật, nhưng bạn nên chỉ định giá trị chính xác cho mã của mình nếu bạn đang sử dụng PHP 5. 5 trở về trước hoặc nếu tùy chọn cấu hình của bạn có thể được đặt không chính xác cho đầu vào đã cho
Đối với mục đích của chức năng này, các mã hóa ISO-8859-1, ISO-8859-15, UTF-8, cp866, cp1251, cp1252 và KOI8-R có hiệu quả tương đương, miễn là bản thân $flags
0 hợp lệ để mã hóa, như
Các bộ ký tự sau được hỗ trợ
Bộ ký tự được hỗ trợBộ ký tựBí danhMô tảISO-8859-1ISO8859-1Tây Âu, Latinh-1. ISO-8859-5ISO8859-5Bộ ký tự cyrillic ít được sử dụng [Latin/Cyrillic]. ISO-8859-15ISO8859-15Tây Âu, Latinh-9. Thêm ký hiệu Euro, chữ cái tiếng Pháp và tiếng Phần Lan bị thiếu trong tiếng Latin-1 [ISO-8859-1]. Unicode 8-bit nhiều byte tương thích UTF-8ASCII. cp866ibm866, bộ ký tự Cyrillic dành riêng cho 866DOS. cp1251Windows-1251, win-1251, 1251Bộ ký tự Cyrillic dành riêng cho Windows. cp1252Windows-1252, 1252Bộ ký tự dành riêng cho Windows cho Tây Âu. KOI8-Rkoi8-ru, koi8rTiếng Nga. BIG 5950 Tiếng Trung phồn thể, chủ yếu được sử dụng ở Đài Loan. GB2312936Tiếng Trung giản thể, bộ ký tự chuẩn quốc gia. BIG5-HKSCSBig5 với phần mở rộng Hồng Kông, tiếng Trung phồn thể. Shift_JISSJIS, SJIS-win, cp932, 932JapaneseEUC-JPEUCJP, eucJP-winJapaneseMacRomanCharset đã được Mac OS sử dụng. ''Một chuỗi trống kích hoạt phát hiện từ mã hóa tập lệnh [Zend multibyte] và ngôn ngữ hiện tại [xem nl_langinfo[] và setlocale[]], theo thứ tự này. Không được khuyến khíchGhi chú. Bất kỳ bộ ký tự nào khác không được nhận dạng. Thay vào đó, mã hóa mặc định sẽ được sử dụng và cảnh báo sẽ được phát ra
$encoding
6Khi tắt $encoding
6, PHP sẽ không mã hóa các thực thể html hiện có, mặc định là chuyển đổi mọi thứ
Giá trị trả về
Chuỗi đã chuyển đổi
Nếu đầu vào $flags
0 chứa chuỗi đơn vị mã không hợp lệ trong $encoding
3 đã cho, một chuỗi trống sẽ được trả về, trừ khi cờ $flags
6 hoặc $flags
7 được đặt
Nhật ký thay đổi
Phiên bảnMô tả5. 6. 0Giá trị mặc định cho tham số$encoding
3 đã được thay đổi thành giá trị của tùy chọn cấu hình. 5. 4. 0Giá trị mặc định cho tham số $encoding
3 đã được thay đổi thành UTF-8. 5. 4. 0Các hằng số $flags
7, $flags
8, ENT_HTML401
, ENT_XML1
, ENT_XHTML
và ENT_HTML5
đã được thêm vào. 5. 3. 0Hằng số $flags
6 đã được thêm vào. 5. 2. 3 Tham số $encoding
6 đã được thêm vàoví dụ
Ví dụ #1 htmlspecialchars[] ví dụ
ENT_NOQUOTES
2
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. Để dịch thực thể đầy đủ, hãy xem htmlentities[]
Cách chuyển ký tự đặc biệt sang UTF
Hàm utf8_encode[] là một hàm sẵn có trong PHP được sử dụng để mã hóa chuỗi ISO-8859-1 thành UTF-8. Unicode đã được phát triển để mô tả tất cả các ký tự có thể có của mọi ngôn ngữ và bao gồm rất nhiều ký hiệu với một số duy nhất cho mỗi ký hiệu/ký tự.Cách chuyển đổi ASCII sang UTF
Nếu chúng tôi biết rằng mã hóa hiện tại là ASCII, hàm 'iconv' có thể được sử dụng để chuyển đổi ASCII thành UTF-8 . Chuỗi ban đầu có thể được chuyển thành tham số cho hàm iconv để mã hóa nó thành UTF-8.Cách đặt mã hóa thành UTF
PHP UTF-8 Encoding – sửa đổi php của bạn. Điều đầu tiên bạn cần làm là sửa đổi php của bạn. ini để sử dụng UTF-8 làm bộ ký tự mặc định. default_charset = "utf-8"; [Lưu ý. Sau đó, bạn có thể sử dụng phpinfo[] để xác minh rằng điều này đã được đặt đúng cách. ]Cách giải mã UTF
Hàm utf8_decode[] là một hàm sẵn có trong PHP được sử dụng để giải mã chuỗi UTF-8 thành ISO-8859- . Hàm này giải mã trở lại chuỗi đã mã hóa được mã hóa bằng hàm utf8_encode[]. Tham số. Hàm này chấp nhận tham số duy nhất $string được yêu cầu.