Tôi đang tạo trang tìm kiếm, nơi bạn nhập truy vấn tìm kiếm và biểu mẫu được gửi tới search.php?query=your query
. Chức năng PHP nào là tốt nhất và tôi nên sử dụng để mã hóa/giải mã truy vấn tìm kiếm?Cách URL đúng mã hóa chuỗi trong PHP?
Trả lời
Để sử dụng truy vấn URI urlencode
/urldecode
; cho bất cứ điều gì khác sử dụng rawurlencode
/rawurldecode
.
Sự khác biệt giữa urlencode
và rawurlencode
là
urlencode
mã hóa theo application/x-www-form-urlencoded (không gian được mã hóa với+
) trong khirawurlencode
mã hóa theo vùng đồng bằng Percent-Encoding (không gian được mã hóa với%20
).
* application/x-www-form-urlencoded * chỉ là một biến thể đặc biệt của * Phần trăm mã hóa * và chỉ được áp dụng để mã hóa dữ liệu biểu mẫu HTML. – Gumbo
Mã hóa nào tốt hơn, dạng url được mã hóa hoặc phần trăm? –
@Click Upvote: Chúng không thể so sánh theo cách đó. Định dạng * application/x-www-form-urlencoded * * là * định dạng * Phần trăm mã hóa * ngoại trừ không gian được mã hóa bằng '+' thay vì '% 20'. Và bên cạnh đó, * application/x-www-form-urlencoded * được sử dụng để mã hóa dữ liệu biểu mẫu trong khi * Phần trăm mã hóa * có cách sử dụng tổng quát hơn. – Gumbo
Được đặt tên khéo léo urlencode() và urldecode().
Tuy nhiên, bạn không cần phải sử dụng urldecode()
trên các biến xuất hiện trong $_POST
và $_GET
.
Tên 'thôurlencode' và' rawurldecode' ... –
Đây là trường hợp sử dụng của tôi, yêu cầu số lượng mã hóa vượt trội. Có thể bạn nghĩ rằng nó đã được tạo ra, nhưng chúng tôi chạy nó trên sản xuất. Thật trùng hợp, điều này bao gồm mọi loại mã hóa, vì vậy tôi đăng bài như một hướng dẫn.
Mô tả trường hợp sử dụng
Ai đó vừa mua thẻ quà tặng trả trước ("mã thông báo") trên trang web của chúng tôi. Các thẻ có URL tương ứng để đổi chúng. Khách hàng này muốn gửi email cho người khác. Trang web của chúng tôi bao gồm liên kết mailto
cho phép họ thực hiện điều đó.
mã PHP
// The order system generates some opaque token
$token = 'w%a&!e#"^2(^@azW';
// Here is a URL to redeem that token
$redeemUrl = 'https://httpbin.org/get?token=' . urlencode($token);
// Actual contents we want for the email
$subject = 'I just bought this for you';
$body = 'I just bought a widget for you. Please enter your shipping details here: ' . $redeemUrl;
// A URI for the email as prescribed
$mailToUri = 'mailto:?subject=' . rawurlencode($subject) . '&body=' . rawurlencode($body);
// Print an HTML element that links to that page
echo '<a href="' . htmlspecialchars($mailToUri) . '">Email your friend</a>';
Lưu ý: các giả định ở trên bạn đang cung cấp cho một tài liệu text/html
. Nếu loại phương tiện đầu ra của bạn là text/json
thì chỉ cần sử dụng $retval['url'] = $mailToUri;
vì mã hóa đầu ra được xử lý bởi json_encode()
.
trường hợp thử nghiệm
- Chạy mã trên một trang web thử nghiệm PHP (là có một kinh điển Tôi nên đề cập đến ở đây?)
- Nhấp vào liên kết
- Gửi email
- Nhận email
- Nhấp vào liên kết đó
Bạn sẽ thấy:
"args": {
"token": "w%a&!e#\"^2(^@azW"
},
Và dĩ nhiên đây là đại diện JSON của $token
trên.
- 1. Mã hóa url url php
- 2. phương pháp mã hóa PHP đúng mã hóa PHP?
- 3. Mã hóa/mã hóa ID trong chuỗi URL
- 4. chuỗi Parsing để thêm vào URL được mã hóa URL
- 5. slash URL mã hóa trong URL
- 6. Làm thế nào để đúng url mã hóa dấu?
- 7. URL giải mã trong PHP
- 8. Mã hóa url Drupal
- 9. Kiểm tra xem chuỗi có được mã hóa bằng URL trong PHP
- 10. Chuỗi mã hóa URL hoặc Base64 trong La bàn/SASS
- 11. Làm thế nào để giải mã url trong php nơi url được mã hóa với encodeURIComponent()
- 12. Chuỗi sẽ không mã hóa url trong iOS
- 13. Mã hóa URL trong Java
- 14. Làm cách nào để mã hóa URL URL trong JSP?
- 15. PHP: Mã hóa ngắn/bị che khuất cho URL được nhúng trong một URL khác?
- 16. Mã hóa URL ASP.Net
- 17. Tránh ngắt dòng trong chuỗi URL được mã hóa và mã hóa
- 18. Tôi làm cách nào để mã hóa url trong XSLT?
- 19. URL mã hóa trong Qt4
- 20. Mã hóa URL trong python
- 21. Mã hóa và giải mã chuỗi với khóa PHP
- 22. Cách xử lý mã hóa trong lxml để phân tích cú pháp chuỗi html đúng cách?
- 23. Làm cách nào để mã hóa URL trong Groovy?
- 24. Biến mã hóa URL trong AS3?
- 25. Gửi chuỗi mã hóa được mã hóa qua thông số URL - văn bản được giải mã bị cắt xén
- 26. Cách thoát khỏi mã hóa url?
- 27. Mã hóa Html trong PHP
- 28. Làm cách nào để mã hóa URL?
- 29. Mã hóa URL bằng C#
- 30. Cách nào đúng nhất để đặt mã hóa trong C++?
Bạn có gặp bất kỳ sự cố nào không? Trình duyệt và PHP sẽ xử lý tự động điều này (ví dụ: đặt 'foo bar' vào trường văn bản, tạo' foo + bar' trong URL). –
@Felix Tôi sẽ gọi tập lệnh tìm kiếm bằng cách sử dụng 'file_get_contents' –