原创

PHP 处理 Url 传递特殊字符及中文字符方法

        在请求地址 url 中往往会传递一些中文字符或其他特殊字符,有时会出现乱码情况,针对中文字符一般做法:进行urlencode($text)转码,但对于特殊字符,比如html字符 SQL注入的相关字符串时处于安全问题考虑,系统一般会过滤掉,而有时需要此类特殊字符,下面为大家讲述一种比较完善的方式。


1、使用base64_encode($text) 编码,服务端 base64_decode($text) 解码,编码后的字符串中含有 "/", "+", "=" 等字符;


2、在用户提交加密串式,把 + 字符换成别的字符,str_replace('+', '_', $content); 之后再服务端处理时再次转换字符串 str_replace('_', '+', $content); 具体代码如下:

function base_encode($str) {
        $src  = array("/","+","=");
        $dist = array("_a","_b","_c");
        $old  = base64_encode($str);
        $new  = str_replace($src,$dist,$old);
        return $new;
}

function base_decode($str) {
        $src = array("_a","_b","_c");
        $dist  = array("/","+","=");
        $old  = str_replace($src,$dist,$str);
        $new = base64_decode($old);
        return $new;
}


关注下方微信公众号“Java精选”(w_z90110),回复关键字领取资料:如HadoopDubboCAS源码等等,免费领取资料视频和项目。 

涵盖:程序人生、搞笑视频、算法与数据结构、黑客技术与网络安全、前端开发、Java、Python、Redis缓存、Spring源码、各大主流框架、Web开发、大数据技术、Storm、Hadoop、MapReduce、Spark、elasticsearch、单点登录统一认证、分布式框架、集群、安卓开发、iOS开发、C/C++、.NET、Linux、Mysql、Oracle、NoSQL非关系型数据库、运维等。

评论

分享:

支付宝

微信