这次第一次用smarttemplate这个模板(%$$484#^67)心情家园www.bbsdiy.net,比smarty小巧了很多(%$$484#^67)心情家园www.bbsdiy.net,但也有些不方便的地方。
(%$$484#^67)心情家园www.bbsdiy.net
(%$$484#^67)心情家园www.bbsdiy.net smarty可以直接对url进行编码, 比如<!--{$var|urlencode}-->
(%$$484#^67)心情家园www.bbsdiy.net
(%$$484#^67)心情家园www.bbsdiy.net 但在smarttemplate里面就好像没有(%$$484#^67)心情家园www.bbsdiy.net,由于链接是由js提交的(%$$484#^67)心情家园www.bbsdiy.net,而不是表单提交(%$$484#^67)心情家园www.bbsdiy.net,所以不能自动编码。
(%$$484#^67)心情家园www.bbsdiy.net
(%$$484#^67)心情家园www.bbsdiy.net 解决办法: 采用js对URL中的汉字进行escape编码。
(%$$484#^67)心情家园www.bbsdiy.net
(%$$484#^67)心情家园www.bbsdiy.net
|
(%$$484#^67)心情家园www.bbsdiy.net
(%$$484#^67)心情家园www.bbsdiy.net
(%$$484#^67)心情家园www.bbsdiy.net 这样点击链接后的效时:
(%$$484#^67)心情家园www.bbsdiy.net
(%$$484#^67)心情家园www.bbsdiy.net
|
(%$$484#^67)心情家园www.bbsdiy.net
(%$$484#^67)心情家园www.bbsdiy.net
(%$$484#^67)心情家园www.bbsdiy.net 生成了这样的效果, 很明显用PHP的urldecode()或者base64_decode()是无法反解的。
(%$$484#^67)心情家园www.bbsdiy.net
(%$$484#^67)心情家园www.bbsdiy.net 解决方法, 用PHP写一个反解函数:
(%$$484#^67)心情家园www.bbsdiy.net
(%$$484#^67)心情家园www.bbsdiy.net
|
(%$$484#^67)心情家园www.bbsdiy.net
(%$$484#^67)心情家园www.bbsdiy.net
(%$$484#^67)心情家园www.bbsdiy.net 注意JS编码会自动转换成为UTF-8, 所以必须进行编码转换才能得到正确的结果(%$$484#^67)心情家园www.bbsdiy.net,否则会中文乱码。
(%$$484#^67)心情家园www.bbsdiy.net
(%$$484#^67)心情家园www.bbsdiy.net 代码如下:
(%$$484#^67)心情家园www.bbsdiy.net
(%$$484#^67)心情家园www.bbsdiy.net
|
(%$$484#^67)心情家园www.bbsdiy.net
(%$$484#^67)心情家园www.bbsdiy.net
(%$$484#^67)心情家园www.bbsdiy.net 到此我们就成功地反解了js的escape编码了。
(%$$484#^67)心情家园www.bbsdiy.net 如下:
(%$$484#^67)心情家园www.bbsdiy.net
(%$$484#^67)心情家园www.bbsdiy.net 另外我找到个用PHP实现js的escape编码的函数:
(%$$484#^67)心情家园www.bbsdiy.net
(%$$484#^67)心情家园www.bbsdiy.net
|
(%$$484#^67)心情家园www.bbsdiy.net
(%$$484#^67)心情家园www.bbsdiy.net 大家是否遇到过这种问题呢?
|