Mảng php loại bỏ các ký tự đặc biệt

if your goal is just to protect your page from Cross Site Scripting [XSS] attack, or just to show HTML tags on a web page [showing on the page, for example], then using htmlspecialchars[] is good enough and better than using htmlentities[].  A minor point is htmlspecialchars[] is faster than htmlentities[].  A more important point is, when we use  htmlspecialchars[$s] in our code, it is automatically compatible with UTF-8 string.  Otherwise, if we use htmlentities[$s], and there happens to be foreign characters in the string $s in UTF-8 encoding, then htmlentities[] is going to mess it up, as it modifies the byte 0x80 to 0xFF in the string to entities like é.  [unless you specifically provide a second argument and a third argument to htmlentities[], with the third argument being "UTF-8"].

The reason htmlspecialchars[$s] already works with UTF-8 string is that, it changes bytes that are in the range 0x00 to 0x7F to < etc, while leaving bytes in the range 0x80 to 0xFF unchanged.  We may wonder whether htmlspecialchars[] may accidentally change any byte in a 2 to 4 byte UTF-8 character to < etc.  The answer is, it won't.  When a UTF-8 character is 2 to 4 bytes long, all the bytes in this character is in the 0x80 to 0xFF range. None can be in the 0x00 to 0x7F range.  When a UTF-8 character is 1 byte long, it is just the same as ASCII, which is 7 bit, from 0x00 to 0x7F.  As a result, when a UTF-8 character is 1 byte long, htmlspecialchars[$s] will do its job, and when the UTF-8 character is 2 to 4 bytes long, htmlspecialchars[$s] will just pass those bytes unchanged.  So htmlspecialchars[$s] will do the same job no matter whether $s is in ASCII, ISO-8859-1 [Latin-1], or UTF-8.

Có một chuỗi văn bản và nhiệm vụ xóa tất cả hoặc một số ký tự đặc biệt khỏi chuỗi đó trong PHP, bài viết này giải thích các phương pháp khác nhau để đạt được điều đó với nhiều ví dụ minh họa

Để bắt đầu, chúng ta có ý nghĩa gì bởi các ký tự đặc biệt?

Một ký tự đặc biệt có thể được định nghĩa là bất kỳ ký tự nào không được coi là chữ và số [bảng chữ cái hoặc số], tức là. nếu nó không nằm trong phạm vi 0 - 9 hoặc A - Z. Dấu chấm câu, ký hiệu và dấu trọng âm được coi là ký tự đặc biệt

Những thứ trên bàn phím của bạn như @, /, {, ], $, và, #, v.v đều là các ký tự đặc biệt

Trong PHP, bạn có thể loại bỏ một số hoặc tất cả các ký tự đặc biệt trong chuỗi bằng cách sử dụng

  • Hàm str_replace[]
  • Hàm preg_replace[]

Phương pháp 1. Sử dụng hàm str_replace[]

The str_replace[] là một hàm có sẵn trong PHP được sử dụng để thay thế một số ký tự bằng một số ký tự khác trong một chuỗi.

cú pháp

str_replace[tìm, thay thế, chuỗi, đếm]

Thông số

  • Find là tham số bắt buộc chỉ định giá trị [ký tự] mà chúng ta muốn tìm và thay thế
  • Thay thế là một tham số bắt buộc chỉ định giá trị chúng ta nên thay thế ký tự bằng. Trong trường hợp này, chúng tôi sẽ sử dụng một chuỗi rỗng [""]
  • Thay thế là một tham số bắt buộc chỉ định chuỗi mà chúng tôi muốn xóa các ký tự đặc biệt khác nhau
  • Số lượng là một tham số tùy chọn là một biến đếm số lần thay thế. Trong trường hợp này, chúng tôi sẽ không thực sự cần nó

Hàm trả về một chuỗi đã loại bỏ các ký tự đặc biệt đã chỉ định

Thí dụ

Chủ Đề