Hướng dẫn how to print special characters in php - cách in các ký tự đặc biệt trong php

Sau nhiều lần đánh đầu, tôi hiểu rõ hơn về vấn đề mà tôi muốn đăng cho bất kỳ ai khác có thể có vấn đề này.

Mặc dù bộ ký tự UTF-8 sẽ hiển thị các ký tự đặc biệt trên máy khách, mặt khác, máy chủ, có thể không quá hấp dẫn và sẽ in các ký tự đặc biệt như àè.

Để đảm bảo máy chủ của bạn sẽ in chính xác, sử dụng Charset ISO-8859-1:




    
        
        Untitled Document
    
    
        
    

Điều này sẽ in chính xác: àè


Chỉnh sửa (4 năm sau):

Bây giờ tôi có một chút hiểu biết tốt hơn một chút. Lý do hoạt động này là máy khách (trình duyệt) đang được nói, thông qua phản hồi header(), mong đợi một tệp văn bản/HTML ISO-8859-1. .

Chuyển đổi trích dẫn kép sang các thực thể HTML:

Thí dụ

Chuyển đổi một số ký tự được xác định trước thành các thực thể HTML:

$str = "This is some bold text.";
echo htmlspecialchars($str);
?>

Đầu ra HTML của mã ở trên sẽ là (xem nguồn):

Jane & amp; 'Tarzan' Jane & amp; ' Tarzan ' Jane & amp; 'Người rừng'


This is some bold text.

Đầu ra trình duyệt của mã ở trên sẽ là:

Jane & 'Tarzan' Jane & 'Tarzan' Jane & 'Tarzan'

Hãy tự mình thử »


Chuyển đổi trích dẫn kép sang các thực thể HTML:

Tôi yêu & quot; PHP & quot ;.

Tôi yêu "PHP".

  • ❮ Tham chiếu chuỗi PHP
  • Sự khác biệt giữa htmlentity () và htmlspecialchars () là gì?
  • Sự khác biệt giữa hàm htmlentity () 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 htmlent () chuyển đổi tất cả các ký tự áp dụng thành các thực thể HTML.
  • Các ký tự đặc biệt PHP là gì?
  • 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 ..

& (ampersand) trở thành & amp ;. To convert special HTML entities back to characters, use the htmlspecialchars_decode() function.


"(trích dẫn kép) trở thành & quot ;.

'(Trích dẫn đơn) trở thành ' ;.

& (ampersand) trở thành & amp ;.

> (lớn hơn) trở thành & gt ;.Những nhân vật đặc biệt thoát khỏi PHP là gì?
Một chuỗi thoát cho biết chương trình dừng quy trình vận hành bình thường và đánh giá các ký tự sau đây khác nhau. Trong PHP, một chuỗi thoát bắt đầu với một dấu gạch chéo ngược \. Trình tự thoát áp dụng cho các chuỗi được trích dẫn kép. Một chuỗi được trích xuất một chỉ sử dụng các chuỗi thoát cho một trích dẫn hoặc dấu gạch chéo ngược.Tôi có nên sử dụng htmlspecialchars không?
Câu hỏi đầu tiên là: Khi nào nên sử dụng hàm 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.Chuyển đổi các ký tự được xác định trước "" (lớn hơn) thành các thực thể HTML:

Đây là một số & lt; B & gt; Bold & lt;/b & gt; chữ.

  • Đây là một số văn bản táo bạo.
  • Định nghĩa và cách sử dụng
  • 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.

Các ký tự được xác định trước là:

  • & (ampersand) trở thành & amp;
  • "(trích dẫn kép) trở thành & quot;
  • '(trích dẫn đơn) trở thành '

Các cờ bổ sung để chỉ định doctype đã sử dụng:

  • ENT_HTML401 - Mặc định. Xử lý mã là HTML 4.01
  • ENT_HTML5 - Mã xử lý dưới dạng HTML 5
  • ENT_XML1 - Mã xử lý dưới dạng XML 1
  • ENT_XHTML - Mã xử lý dưới dạng XHTML
tập hợp nhân vậtKhông bắt buộc. Một chuỗi chỉ định sử dụng bộ ký tự nào.

Giá trị được phép là:

  • UTF -8 - Mặc định. Ascii tương thích đa byte unicode
  • ISO-8859-1-Tây Âu
  • ISO-8859-15-Tây Âu (thêm dấu hiệu Euro + chữ cái Pháp và Phần Lan bị thiếu trong ISO-8859-1)
  • CP866 - Charset Cyrillic dành riêng cho DOS
  • CP1251 - Charset Cyrillic dành riêng cho Windows
  • CP1252 - Charset cụ thể của Windows cho Tây Âu
  • Koi8 -r - Nga
  • Big5 - Trung Quốc truyền thống, chủ yếu được sử dụng ở Đài Loan
  • GB2312 - Bộ nhân vật tiêu chuẩn quốc gia đơn giản hóa
  • BIG5 -HKSCS - Big5 với phần mở rộng Hồng Kông
  • Shift_Jis - Nhật Bản
  • EUC -JP - Nhật Bản
  • Macroman - Bộ ký tự được sử dụng bởi Mac OS

LƯU Ý: Các bộ ký tự không được công nhận sẽ bị bỏ qua và 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 thay thế bởi UTF-8. Unrecognized character-sets will be ignored and replaced by ISO-8859-1 in versions prior to PHP 5.4. As of PHP 5.4, it will be ignored an replaced by UTF-8.

double_encodeKhông bắt buộc. Một giá trị boolean chỉ định có nên 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ở lại:Trả về chuỗi được 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ác cờ ent_ignore hoặc ent_subst acad được đặt

Phiên bản PHP:4+
Changelog:Php 5.6-Đã thay đổi giá trị mặc định cho tham số bộ ký tự thành giá trị của ký tự mặc định (trong cấu hình) .php 5.4-đã thay đổi giá trị mặc định cho tham số bộ ký tự thành UTF-8. Php 5.4 - Đã thêm ent_subst acad, ent_disallowed, ent_html401, ent_html5, ent_xml1 và ent_xhtmlphp 5.3 - Đã thêm ent_ignore hằng.php 5.2.3 - Đã thêm tham số double_encode.
PHP 5.4 - Changed the default value for the character-set parameter to UTF-8.
PHP 5.4 - Added ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 and ENT_XHTML
PHP 5.3 - Added ENT_IGNORE constant.
PHP 5.2.3 - Added the double_encode parameter.
PHP 4.1 - Added the character-set parameter.

Nhiều ví dụ hơn

Thí dụ

Chuyển đổi một số ký tự được xác định trước thành các thực thể HTML:

$str = "Jane & 'Tarzan'";
echo htmlspecialchars($str, ENT_COMPAT); // Will only convert double quotes
echo "
";
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
echo "
";
echo htmlspecialchars($str, ENT_NOQUOTES); // Does not convert any quotes
?>

Đầu ra HTML của mã ở trên sẽ là (xem nguồn):

Jane & amp; 'Tarzan' Jane & amp; ' Tarzan ' Jane & amp; 'Người rừng'


Jane & 'Tarzan'

Jane & 'Tarzan'

Jane & 'Tarzan'

Đầu ra trình duyệt của mã ở trên sẽ là:

Jane & 'Tarzan' Jane & 'Tarzan' Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'

Hãy tự mình thử »

Thí dụ

Chuyển đổi một số ký tự được xác định trước thành các thực thể HTML:

$str = 'I love "PHP".';
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
?>

Đầu ra HTML của mã ở trên sẽ là (xem nguồn):

Jane & amp; 'Tarzan' Jane & amp; ' Tarzan ' Jane & amp; 'Người rừng'


I love "PHP".

Đầu ra trình duyệt của mã ở trên sẽ là:

Jane & 'Tarzan' Jane & 'Tarzan' Jane & 'Tarzan'

Hãy tự mình thử »


Chuyển đổi trích dẫn kép sang các thực thể HTML:


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

Sự khác biệt giữa hàm htmlentity () 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 htmlent () chuyển đổi tất cả các ký tự áp dụng thành các thực thể HTML.htmlspecialchars() function convert the special characters to HTML entities whereas htmlentities() function convert all applicable characters to HTML entities.

Các ký tự đặc biệt PHP là gì?

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 ...
& (ampersand) trở thành & amp ;.
"(trích dẫn kép) trở thành & quot ;.
'(Trích dẫn đơn) trở thành ' ;.
& (ampersand) trở thành & amp ;.
> (lớn hơn) trở thành & gt ;.

Những nhân vật đặc biệt thoát khỏi PHP là gì?

Một chuỗi thoát cho biết chương trình dừng quy trình vận hành bình thường và đánh giá các ký tự sau đây khác nhau.Trong PHP, một chuỗi thoát bắt đầu với một dấu gạch chéo ngược \.Trình tự thoát áp dụng cho các chuỗi được trích dẫn kép.Một chuỗi được trích xuất một chỉ sử dụng các chuỗi thoát cho một trích dẫn hoặc dấu gạch chéo ngược.. In PHP, an escape sequence starts with a backslash \ . Escape sequences apply to double-quoted strings. A single-quoted string only uses the escape sequences for a single quote or a backslash.

Tôi có nên sử dụng htmlspecialchars không?

Câu hỏi đầu tiên là: Khi nào nên sử dụng hàm 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.