PHP URL编码/解码

| 我使用了接受此问题的解决方案,例如在/index.php?id=3中通过id进行加密。问题是我无法将加密值作为URL发送,例如/index.php?id=dsf13f3343f23/23=。因为有时候网址中会有奇怪的字符,例如注意最后的“ 0”符号     
已邀请:
URL中传递的值中的怪异字符应使用“ 1”转义。 例如,以下代码部分:
echo urlencode(\'dsf13f3343f23/23=\');
会给你:
dsf13f3343f23%2F23%3D
可以正常工作,作为URL参数。 并且,如果您想使用多个参数构建查询字符串,请查看
http_build_query()
函数。 例如 :
echo http_build_query(array(
    \'id\' => \'dsf13f3343f23/23=\',
    \'a\' => \'plop\',
    \'b\' => \'$^@test\', 
));
会给你 :
id=dsf13f3343f23%2F23%3D&a=plop&b=%24%5E%40test
该函数处理参数本身的转义和连接;-)     
在将值放入网址之前,请使用PHP的“ 7”函数对值进行编码。   
string
9
( string
11
)
  该功能在以下情况下很方便   编码要在   查询URL的一部分,以方便   将变量传递到下一个的方法   页。 此函数将\“ weird \”字符(例如
=
)转换为可安全放入URL的格式。您可以像这样使用它:
Header(\'Location: /index.php?id=\' . urlencode($id))
    
如果使用Base64编码URL的二进制值,则还有一个带有URL和文件名安全字母的变体。 您可以使用
strtr
函数将一个字母转换为另一个字母:
$base64url = strtr($base64, \'+/\', \'-_\');
$base64 = strtr($base64url, \'-_\', \'+/\');
因此,您可以使用以下功能来编码和解码base64url:
function base64url_encode($str) {
    return strtr(base64_encode($str), \'+/\', \'-_\'));
}
function base64url_decode($base64url) {
    return base64_decode(strtr($base64url, \'-_\', \'+/\'));
}
另请参阅我的答案:从长md5哈希生成短字母数字字符串的一种好方法是什么?     
加密参数没有用。 照原样发送:
/index.php?id=3 
没有错。     

要回复问题请先登录注册