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! Show 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ã URLCó 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:
Thông tin đó sẽ được mã hóa trong chuỗi truy vấn sau: https://www.instance.com?redirect=httpspercent3Apercent2Fpercent2Fcode.tutsplus.com&creator=montypercent20shokeen&web page=2 Lưu ý rằng các ký tự đặc biệt như 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à Trong trường hợp Ví dụ sau đây sẽ giúp bạn rõ ràng hơn một chút. <?php $url_string = 'https://code.tutsplus.com/tutorials?question=php fundamentals&web page=2'; $urlencoded_string = urlencode($url_string); echo $urlencoded_string; Output: httpspercent3Apercent2Fpercent2Fcode.tutsplus.compercent2Ftutorialspercent3Fquerypercent3Dphp+basicspercent26pagepercent3D2 $rawurlencoded_string = rawurlencode($url_string); echo $rawurlencoded_string; Output: httpspercent3Apercent2Fpercent2Fcode.tutsplus.compercent2Ftutorialspercent3Fquerypercent3Dphppercent20basicspercent26pagepercent3D2 Như bạn có thể thấy, các ký tự không phải chữ và số như Nói chung, nên dùng Giải mã URL với urldecode() và rawurldecode()Chức năng Về cơ bản, điều này có nghĩa là tất cả các chuỗi chứa dấu phần trăm theo sau là hai chuỗi hex sẽ được thay thế bằng các ký tự thích hợp của chúng. Các Đây là một ví dụ để minh họa sự khác biệt. <?php $urlencoded_string = 'httpspercent3Apercent2Fpercent2Fcode.tutsplus.compercent2Ftutorialspercent3Fquerypercent3Dphp+basicspercent26pagepercent3D2'; echo urldecode($urlencoded_string); //Output: https://code.tutsplus.com/tutorials?question=php fundamentals&web page=2 echo rawurldecode($urlencoded_string); Output: https://code.tutsplus.com/tutorials?question=php+fundamentals&web page=2 $rawurlencoded_string = 'httpspercent3Apercent2Fpercent2Fcode.tutsplus.compercent2Ftutorialspercent3Fquerypercent3Dphppercent20basicspercent26pagepercent3D2'; echo urldecode($rawurlencoded_string); Output: https://code.tutsplus.com/tutorials?question=php fundamentals&web page=2 echo rawurldecode($rawurlencoded_string); Output: https://code.tutsplus.com/tutorials?question=php fundamentals&web page=2 Trong ví dụ trên, chúng tôi đã sử dụng các hàm giải mã để giải mã các URL mà chúng tôi đã mã hóa trong ví dụ trước. Các Các Điều quan trọng là phải cẩn thận về chức năng mà bạn sử dụng để giải mã một URL được mã hóa vì kết quả cuối cùng có thể khác nhau tùy thuộc vào những gì bạn đã sử dụng để mã hóa nó ban đầu. Lời kếtTrọng tâm của chúng tôi trong hướng dẫn này là dạy bạn cách mã hóa và giải mã URL bằng PHP. Chúng tôi bắt đầu với nhu cầu mã hóa và giải mã URL và sau đó cung cấp một cái nhìn tổng quan ngắn gọn về bốn chức năng khác nhau để thực hiện điều đó. Như tôi đã đề cập trước đó, đặt cược an toàn nhất là sử dụng |