在用 ThinkPHP 做 tags 标签的时候, 出现了一个问题, 就是能获取到参数, 但是查不出相应的结果查看数据库发现数据是存在的问题出在哪了呢?
形如 http:/www.XXXX.com/tags/index/自动验证.html 的调用
参数是经过 urlencode() 编码了的, 使用 urldecode() 函数进行解码, 再进行查询仍然没有结果
紧接着测试转换编码 iconv() 函数, 结果成功了
浏览器默认的编码是 GB2312 的, 而这个项目采用的是 UTF-8 编码的
下面就将错的代码和修正后的代码给大家看一下:
- $kw= $_GET['_URL_']['2']; // 错误的代码, 在 iis 上能获取的参数, 但是查询不出结果的
- $kw= iconv("gb2312","utf-8",$_GET['_URL_']['2']); // 经过编码转换的, 能够查询出结果的
另外, 本方法只适用于 iis 环境
还要注意,$_GET 接收参数的时候本身就有 urldecode 转码功能, 不需要再进行 urldecode 解码操作!
来源: https://www.php1.cn/detail/php-f9201ae654.html