How to properly URL encode a string in PHP?
我正在创建一个搜索页面,您在其中键入一个搜索查询并将表单提交给
对于uri查询,使用
urlencode 根据application/x-www-form-urlencoded编码(空格用+ 编码),而rawurlencode 按纯百分比编码(空格用%20 编码)。
巧妙命名的urlencode()和urldecode()。
但是,您不需要对出现在
这是我的用例,它需要大量的编码。也许你认为它是人为的,但我们是在生产上运行的。巧合的是,这涵盖了所有类型的编码,所以我将作为教程发布。
用例描述有人刚在我们的网站上买了一张预付礼品卡("代币")。令牌有相应的URL来兑换它们。此客户希望通过电子邮件将其发送给其他人。我们的网页包含一个
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | // 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 'Email your friend'; |
注意:以上假设您正在输出到一个
你应该看到:
1 2 3 | "args": { "token":"w%a&!e#"^2(^@azW" }, |
当然,这是上述
可以使用url编码函数php具有
1 |
功能
ASP有
1 |
功能
在javascript中,您可以使用
4功能。