Hướng dẫn encoding and escaping in php in hindi - mã hóa và thoát bằng php trong tiếng Hin-ddi
Show
Mã hóa và trốn thoátBởi vì các chương trình PHP thường tương tác với các trang HTML, địa chỉ web (URL) và cơ sở dữ liệu, có các chức năng giúp bạn làm việc với các loại dữ liệu đó. HTML, địa chỉ trang web và các lệnh cơ sở dữ liệu là tất cả các chuỗi, nhưng mỗi chuỗi yêu cầu các ký tự khác nhau được thoát theo những cách khác nhau. Chẳng hạn, một không gian trong địa chỉ web phải được viết là 2, trong khi một dấu hiệu ít hơn theo nghĩa đen ( 3) trong tài liệu HTML phải được viết là 4. PHP có một số chức năng tích hợp để chuyển đổi và từ các mã hóa này. HTMLCác ký tự đặc biệt trong HTML được đại diện bởi các thực thể như 5 và 4. Có hai hàm PHP biến các ký tự đặc biệt trong một chuỗi thành thực thể của chúng: một để xóa các thẻ HTML và một để trích xuất các thẻ 7.entities such as 5 and 4. There are two PHP functions that turn special characters in a string into their entities: one for removing HTML tags, and one for extracting only 7 tags. Thực thể tìm thấy tất cả các ký tự đặc biệtHàm 8 thay đổi tất cả các ký tự với các thực thể HTML tương đương thành các tương đương đó (ngoại trừ ký tự không gian). Điều này bao gồm dấu hiệu kém hơn ( 3), dấu hiệu lớn hơn ( $output = htmlspecialchars(0), ampersand và các ký tự được nhấn và các ký tự có dấu. Ví dụ:
Phiên bản được thực thể tìm thấy (________ 32, xem bằng cách xem nguồn) hiển thị chính xác là ü trong trang web được hiển thị. Như bạn có thể thấy, không gian chưa được biến thành $output = htmlspecialchars(3. Hàm 8 thực sự chiếm tối đa ba đối số: $output = htmlentities( Tham số $output = htmlspecialchars(5, nếu được đưa ra, xác định bộ ký tự. Mặc định là trên ISO-8859-1. Tham số $output = htmlspecialchars(6 có kiểm soát xem các báo giá đơn và đôi có được biến thành các hình thức thực thể của chúng hay không. $output = htmlspecialchars(7 (mặc định) chỉ chuyển đổi dấu ngoặc kép, $output = htmlspecialchars(8 chuyển đổi cả hai loại báo giá và $output = htmlspecialchars(9 cũng không chuyển đổi. Không có tùy chọn để chỉ chuyển đổi trích dẫn đơn. Ví dụ:
Chỉ trích dẫn thực thể chỉ các ký tự cú pháp HTMLHàm 0 chuyển đổi bộ thực thể nhỏ nhất có thể để tạo HTML hợp lệ. Các thực thể sau đây được chuyển đổi:
Nếu bạn có một ứng dụng hiển thị dữ liệu mà người dùng đã nhập vào một biểu mẫu, bạn cần chạy dữ liệu đó thông qua 0 trước khi hiển thị hoặc lưu nó. Nếu bạn không có, và người dùng nhập một chuỗi như 4 hoặc 5, trình duyệt sẽ nghĩ rằng các ký tự đặc biệt là HTML, dẫn đến một trang bị cắt xén. Giống như 8, 0 có thể mất tối đa ba đối số: $output = htmlspecialchars( Các đối số $output = htmlspecialchars(6 và $output = htmlspecialchars(5 có cùng ý nghĩa mà chúng làm cho 8. Không có chức năng cụ thể để chuyển đổi từ các thực thể sang văn bản gốc, bởi vì điều này hiếm khi cần thiết. Có một cách tương đối đơn giản để làm điều này, mặc dù. Sử dụng chức năng 1 để tìm nạp bảng dịch được sử dụng bởi một trong hai chức năng này theo kiểu trích dẫn nhất định. Ví dụ: để có được bảng dịch mà 8 sử dụng, hãy làm điều này:
Để lấy bảng cho 0 ở chế độ $output = htmlspecialchars(9, hãy sử dụng:
Một mẹo hay là sử dụng bảng dịch này, lật nó bằng 5 và đưa nó vào 6 để áp dụng nó vào một chuỗi, do đó thực hiện ngược lại 8:
Tất nhiên, bạn cũng có thể lấy bảng dịch, thêm bất kỳ bản dịch nào khác bạn muốn vào nó, và sau đó thực hiện 6. Ví dụ: nếu bạn muốn 8 cũng mã hóa không gian thành $output = htmlspecialchars(3, bạn sẽ làm:
Xóa thẻ HTMLHàm 1 xóa các thẻ HTML khỏi chuỗi:
Hàm có thể lấy một đối số thứ hai chỉ định một chuỗi các thẻ để lại trong chuỗi. Chỉ liệt kê các hình thức mở của các thẻ. Các hình thức đóng của các thẻ được liệt kê trong tham số thứ hai cũng được bảo tồn:
Các thuộc tính trong các thẻ được bảo quản không được thay đổi bởi 1. Bởi vì các thuộc tính như 3 và 4 có thể ảnh hưởng đến giao diện và hành vi của các trang web, việc bảo tồn một số thẻ có 1 won đã nhất thiết phải loại bỏ khả năng lạm dụng.
Trích xuất thẻ metaHàm 6 trả về một mảng của các thẻ meta cho một trang HTML, được chỉ định là tên tệp hoặc URL cục bộ. Tên của thẻ meta ( 7, 8, 9, v.v.) trở thành chìa khóa trong mảng và nội dung của thẻ meta trở thành giá trị tương ứng: $output = htmlentities(0 Hình thức chung của hàm là: $output = htmlentities(1 Vượt qua giá trị 0 cho 1 để cho phép PHP cố gắng mở tệp bằng tiêu chuẩn bao gồm đường dẫn. URLPHP cung cấp các chức năng để chuyển đổi và từ mã hóa URL, cho phép bạn xây dựng và giải mã URL. Thực tế có hai loại mã hóa URL, khác nhau về cách chúng xử lý không gian. Đầu tiên (được chỉ định bởi RFC 3986) coi một không gian chỉ là một ký tự bất hợp pháp khác trong URL và mã hóa nó là 2. Thứ hai (triển khai hệ thống 3) mã hóa một không gian dưới dạng 4 và được sử dụng trong các chuỗi truy vấn xây dựng. Lưu ý rằng bạn không muốn sử dụng các chức năng này trên một URL hoàn chỉnh, chẳng hạn như http://www.example.com/hello, vì chúng sẽ thoát khỏi các dấu chấm và chém để sản xuất:http://www.example.com/hello, as they will escape the colons and slashes to produce: $output = htmlentities(2 Chỉ mã hóa các URL một phần (bit sau http://www.example.com/) và thêm giao thức và tên miền sau.http://www.example.com/) and add the protocol and domain name later. Mã hóa và giải mã RFC 3986Để mã hóa một chuỗi theo quy ước URL, hãy sử dụng 5: $output = htmlentities(3 Hàm này lấy một chuỗi và trả về một bản sao với các ký tự URL bất hợp pháp được mã hóa trong quy ước 6. Nếu bạn đang tự động tạo các tài liệu tham khảo siêu văn bản cho các liên kết trong một trang, bạn cần chuyển đổi chúng bằng 5: $output = htmlentities(4 Hàm 8 giải mã các chuỗi được mã hóa URL: $output = htmlentities(5 Mã hóa chuỗi truy vấnCác hàm 9 và 0 khác với các đối tác thô của chúng chỉ ở chỗ chúng mã hóa không gian dưới dạng dấu cộng ( 4) thay vì theo trình tự 2. Đây là định dạng để xây dựng các chuỗi truy vấn và giá trị cookie. Các chức năng này có thể hữu ích trong việc cung cấp các URL giống như hình thức trong HTML. PHP tự động giải mã các chuỗi truy vấn và giá trị cookie, vì vậy bạn không cần sử dụng các chức năng này để xử lý các giá trị đó. Các chức năng rất hữu ích để tạo chuỗi truy vấn: $output = htmlentities(6 SQLHầu hết các hệ thống cơ sở dữ liệu đều yêu cầu các chuỗi chữ trong các truy vấn SQL của bạn được thoát ra. Sơ đồ mã hóa SQL, khá đơn giản, một trích dẫn, trích dẫn kép, byte nul và dấu gạch chéo ngược cần phải được đi trước bởi một dấu gạch chéo ngược. Hàm 3 thêm các dấu gạch chéo này và hàm 4 loại bỏ chúng: $output = htmlentities(7 Ghi chúMột số cơ sở dữ liệu (ví dụ, Sybase) thoát khỏi các trích dẫn đơn với một trích dẫn khác thay vì dấu gạch chéo ngược. Đối với các cơ sở dữ liệu đó, hãy bật 5 trong tệp php.ini của bạn. Mã hóa chuỗi CHàm 6 thoát khỏi các ký tự tùy ý bằng cách đặt dấu gạch chéo ngược trước chúng. Ngoại trừ các ký tự trong Bảng & NBSP; 4-4, các ký tự có giá trị ASCII nhỏ hơn 32 hoặc trên 126 được mã hóa với các giá trị bát phân của chúng (ví dụ: 7). Các chức năng 6 và 9 được sử dụng với các hệ thống cơ sở dữ liệu không đạt tiêu chuẩn có ý tưởng riêng mà các nhân vật cần phải được thoát ra. Bảng & nbsp; 4-4. & Nbsp; Escapes đơn lẻ được công nhận bởi addcslashes () và dảicslashes ()
Gọi 6 với hai đối số, chuỗi để mã hóa và các ký tự để thoát: $output = htmlentities(8 Chỉ định một loạt các ký tự để thoát với cấu trúc $output = htmlentities(08: $output = htmlentities(9 Cẩn thận với việc chỉ định $output = htmlentities(09, $output = htmlentities(10, $output = htmlentities(11, $output = htmlentities(12, $output = htmlentities(13, $output = htmlentities(14, $output = htmlentities(15 hoặc $output = htmlentities(16 trong bộ ký tự, vì chúng sẽ được biến thành $output = htmlentities(17, $output = htmlentities(18, v.v. 9 lấy một chuỗi và trả về một bản sao với Escapes được mở rộng: 0 Ví dụ: 1 Nhận lập trình PHP, phiên bản thứ 3 ngay bây giờ với nền tảng học tập O hèReilly.learning platform. Các thành viên của O hèReilly trải nghiệm đào tạo trực tuyến trực tiếp, cộng với sách, video và nội dung kỹ thuật số từ gần 200 nhà xuất bản.nearly 200 publishers. Mã hóa và trốn thoát trong PHP là gì?Mã hóa đang chuyển đổi dữ liệu từ một định dạng thành định dạng khác. Giới thiệu là một tập hợp mã hóa, trong đó không phải tất cả các ký tự cần được mã hóa. Chỉ một số ký tự được mã hóa (bằng cách sử dụng ký tự thoát). Escaping is a subset of encoding, where not all characters need to be encoded. Only some characters are encoded (by using an escape character).
Điều gì đang trốn thoát đến PHP?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.
Sự khác biệt giữa các thực thể HTML () 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.
Làm thế nào để bạn thoát khỏi mã hóa HTML?Chúng ta có thể thoát khỏi HTML của chuỗi bằng phương thức thay thế của chuỗi ... ít hơn biểu tượng ( lớn hơn biểu tượng (>) với & gt ;. Báo giá kép (") với & quot ;. Trích dẫn đơn (') với ' ;. ampersand (&) với & amp ;. |