Hướng dẫn php unescape

Hàm htmlentities[] và html_entity_decode[] được sử dụng để làm việc với các ký tự HTML. Vậy làm thế nào để sử 2 hàm này trong PHP một cách dễ dàng. Hãy tìm hiểu khái niệm và cách dùng qua bài dưới đây.

Nội dung chính

  • Hàm html_entity_decode[] trong PHP
  • Nhu cầu mã hóa và giải mã URL
  • Mã hóa URL với urlencode[] và rawurlencode[]
  • Giải mã URL với urldecode[] và rawurldecode[]
  • Lời kết

  • Hàm htmlentities[] trong PHP
  • Hàm html_entity_decode[] trong PHP

Hàm htmlentities[] đượng dùng để chuyển đổi các ký tự thành ký tự HTML entiies.

HTML Entities là gì?

HTML entiies là ký tự thực thể được sử dụng để hiển thị các biểu tượng, ký tự trong HTML.

Giả sử như bạn đang muốn viết dấu < hoặc > so sánh hai số nhưng lúc này trình duyệt cho rằng đó là một tag của HTML. Để tránh tình trạng này cần phải dùng tới HTML entiies.

Khi viết sẽ có dạng:

&name;
&#number;

Một số ký tự thực thể trong HTML:

Cú pháp htmlentities:

htmlentities[ $string, $flags = ENT_COMPAT | ENT_HTML401, $encoding = ini_get["default_charset"];

Giải thích:

  • $string: Là chuỗi cần truyền vào
  • $flags: truyền vào một số giá trị như:
    • ENT_COMPAT.
    • ENT_QUOTES.
    • ENT_NOQUOTES.
    • ENT_IGNORE .
    • ENT_SUBSTITUTE.
    • ENT_DISALLOWED.
    • ENT_HTML401.
    • ENT_XML1.
    • ENT_XHTML.
    • ENT_HTML5
  • $encoding: Đây là một tham số không bắt buộc

Chạy đoạn mã sau:

Kết quả nhận được là:

 Một đoạn văn bản   
<html> <head><head>Một đoạn văn bản   </html>

Hàm html_entity_decode[] trong PHP

Hàm html_entity_decode[] sẽ làm việc ngược lại so với htmlentities[]. Sẽ chuyển đổi ký tự thực thể sang ký tự HTML.

Cũng với ví dụ trên mình sẽ thêm một đoạn lệnh phía dưới:

$r = html_entity_decode[$result];

echo $result . "
"; echo $r . "
";

Và kết quả khi echo $r ra sẽ là:

 Một đoạn văn bản 

Với bài viết về hai hàm htmlentities[], html_entity_decode[] trong PHP bạn đã hiểu được cách dùng như thế nào rồi đấy. Khi đọc bạn nên viết mã để thực hành kẻo quên mất nhé. Ngoài ra hãy thường xuyên ghé thăm blog để đọc thật nhiều bài viết về ngôn ngữ PHP.

Thỉnh thoảng, bạn sẽ phải chuyển các URL giữa các trang net và dịch vụ khác nhau. Nghe có vẻ như một nhiệm vụ khá dễ dàng vì URL về cơ bản chỉ là các chuỗi văn bản, nhưng mọi thứ đôi khi có thể trở nên phức tạp. Ví dụ: đôi khi bạn cần mã hóa một URL trong một URL khác, ví dụ như trong yêu cầu GET!

Trong hướng dẫn này, bạn sẽ tìm hiểu lý do tại sao bạn cần mã hóa hoặc giải mã URL của mình và cách sử dụng các hàm PHP tích hợp để làm như vậy.

  • Nhu cầu mã hóa và giải mã URL
  • Mã hóa URL với urlencode[] và rawurlencode[]
  • Giải mã URL với urldecode[] và rawurldecode[]
  • Lời kết

Nhu cầu mã hóa và giải mã URL

Có lẽ bạn muốn chuyển một URL dưới dạng tham số truy vấn đến một dịch vụ net hoặc một trang net khác. Ví dụ: bạn muốn gửi dữ liệu sau đến một trang net dưới dạng một chuỗi truy vấn:

Chìa khóa dữ liệu
chuyển hướng //code.tutsplus.com
tác giả monty shokeen
trang 2

Thông tin đó sẽ được mã hóa trong chuỗi truy vấn sau:

//www.instance.com?redirect=httpspercent3Apercent2Fpercent2Fcode.tutsplus.com&creator=montypercent20shokeen&web page=2

Lưu ý rằng các ký tự đặc biệt như :/ trong URL “chuyển hướng” đã được mã hóa thành %3A%2F để tránh can thiệp vào cấu trúc của URL tổng thể. Điều này được gọi là thoát và đó là nơi các chức năng mã hóa đi vào.

Máy chủ tại instance.com sẽ nhận URL được mã hóa đó trong chuỗi truy vấn và có thể sẽ cần giải mã nó sau này. Đó là nơi mà việc giải mã URL rất quan trọng.

Mã hóa URL với urlencode[] và rawurlencode[]

Có hai chức năng khác nhau trong PHP để mã hóa URL. Chúng được gọi là urlencode[]rawurlencode[]. Sự khác biệt chính giữa hai ký tự này là tập hợp các ký tự mà chúng mã hóa và cách chúng xử lý khoảng trắng.

Trong trường hợp urlencode[], hàm thay thế tất cả các ký tự không phải chữ và số khác ngoại trừ -, _. với một dấu phần trăm theo sau là hai chữ số hex. Mọi dấu cách đều được thay thế bằng + tính cách. Mặt khác, rawurlencode[] hàm thay thế tất cả các ký tự không phải chữ và số khác ngoại trừ -, _, ., và ~ với một dấu phần trăm theo sau là hai chữ số hex. Hàm này cũng thay thế khoảng trắng bằng một phần trăm theo sau bởi hai chữ số hex: %20.

Ví dụ sau đây sẽ giúp bạn rõ ràng hơn một chút.

Chủ Đề