好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

PHP url中文编码cn_urlencode函数 - php函数

PHP url中文编码cn_urlencode函数

PHP中对于URL进行编码,可以使用 urlencode() 或者rawurlencode(),二者的区别是前者把空格编码为 \'+\',而后者把空格编码为 \'%20\',不过应该注意的是,在编码时应该只对部分URL编码,否则URL中的冒号和反斜杠也会被转义.下面是详细解释:

string urlencode ( string str)

返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+).

例子 1 :urlencode函数与rawurlencode函数区别

实例代码如下:

<?php       $str = '博 客' ;       echo  urlencode( $str );       echo   "<br>" ;       echo  rawurlencode( $str );  ?> 

url结果:

%B2%A9+%BF%CD

%B2%A9%20%BF%CD例子 2 :url中文编码方法

从url:"http://www.baidu.com/s?wd=博 客" 转为 url:http://www.baidu.com/s?wd=%E5%8D%9A%20%E5%AE%A2;

实例代码如下:

<?php       $url = 'http://www.baidu.com/s?wd=博 客' ;       $arr = explode ( '=' , $url );       $url = $arr [0]. '=' .rawurlencode( $arr [1]);       echo   $url ;  ?> 

结果:

或许用以下url编码函数

实例代码如下:

<?php  function  cn_urlencode( $url ){        $pregstr  =  "/[x{4e00}-x{9fa5}]+/u" ; //UTF-8中文正则        if (preg_match_all( $pregstr , $url , $matchArray )){ //匹配中文,返回数组            foreach ( $matchArray [0]  as   $key => $val ){               $url = str_replace ( $val , urlencode( $val ),  $url ); //将转译替换中文           }           if ( strpos ( $url , ' ' )){ //若存在空格                $url = str_replace ( ' ' , '%20' , $url );          }      }       return   $url ;  }       echo   cn_urlencode( $url );  ?> 

url结果:

查看更多关于PHP url中文编码cn_urlencode函数 - php函数的详细内容...

  阅读:40次