我正在创建一个将发送给用户的网址。用户然后单击该URL,此URL告诉我该用户是谁。
所以我使用base64编码添加到此链接的所有数据。但是,当用户点击链接时,他被重定向到404页面,因为编码的网址中有“/”,而zend框架路由器找不到任何路由。
任何方式我都可以压制'/'?我试过了htmlentities
,但它没有用。
答案 0 :(得分:3)
我强烈推荐Joe Riggs' Create URL Safe Encrypted String。
提供的代码是程序性的,但转换为OO非常简单。我已经用它来做你正在做的事情,其中一些信息(通常是用户的电子邮件和id的哈希)被编码/加密,以便用户点击激活他们的帐户。
您要查看的功能是url_base64_decode
和url_base64_encode
,其中某些字符会被重写为url safe(例如,删除/
并将其替换为{{1} }})。
[编辑]
以下是基于上述代码的我的类的键盘:http://codepad.org/lzevA4k1
用法:
~
答案 1 :(得分:-1)
我认为您需要对字符+
,/
和=
进行网址编码。尝试在Base64编码参数上使用urlencode()
。
PS:顺便说一句,这些将是变化:+
=> %2B
,/
=> %2F
和=
=> %25