我使用了question接受的解决方案来通过id加密,例如/index.php?id=3 。问题是我无法将加密值作为url发送,例如/index.php?id=dsf13f3343f23/23= 。因为有时它在网址中会有奇怪的字符,例如注意最后的=标志

最佳答案

URL中传递的值中的怪异字符应使用 urlencode( 进行转义。

例如,下面的代码部分:

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

该函数处理参数本身的转义和连接;-)

09-25 16:48