php实现字符转URL实现代码
在php中函数自带了一个url转换字符或字符转换在url字符的方法,但是今天我也看到了一个朋友写的一个例子,下面我就把它现官方的函数整理一起.
英文,代码如下:
function tourl( $str ) { $str = preg_replace( '/[^a-zA-Z0-9]+/' , '-' , $str ); $str = trim( $str , '-' ); return strtolower ( $str ); }包含特殊字符,代码如下:
function strtourl( $str ) { $str = htmlentities( $str , ENT_QUOTES, "UTF-8" ); $str = preg_replace( '/&([a-z]{1,2})(?:acute|lig|grave|ring|tilde|uml|cedil|caron);/i' , '1' , $str ); $str = html_entity_decode( $str , ENT_QUOTES, "UTF-8" ); $str = preg_replace( '/[^a-z0-9]+/i' , '-' , $str ); return strtolower ( $str ); }urlencode函数,此函数可以解决百度get与google get中文乱码问题,代码如下:
header( 'Content-type: text/html; charset=utf-8' ); echo '<br />百度关键词URL编码转换示例:<br />' ; $urlBaidu = 'http://HdhCmsTestbaidu测试数据/s?wd=%D6%D0%CE%C4' ; $arrParse = parse_url ( $urlBaidu ); parse_str ( $arrParse [ 'query' ], $output ); echo '乱码:' . $output [ 'wd' ] . '<br />' ; //将gb2312编码转换成utf-8编码 $strUTF8 = mb_convert_encoding( $output [ 'wd' ], 'utf-8' , 'gb2312' ); echo '可读码:' . $strUTF8 . '<br />' ; echo '<br />谷歌关键词URL编码转换示例:<br />' ; $urlGoogle = 'http://HdhCmsTestgoogle.cn/search?hl=zh-CN&source=hp&q=%E4%B8%AD%E6%96%87&aq=f&oq=' ; $arrParse = parse_url ( $urlGoogle ); //开源代码phpfensi测试数据 parse_str ( $arrParse [ 'query' ], $output ); //谷歌关键词URL编码是utf-8,不用再作转换 echo '可读码:' . $output [ 'q' ] . '<br />' ;总结: 个人更喜欢使用php自带urlencode()函数,上面这个也是解决我们url用中文时百度与gg有时会乱码问题解决方案了.
查看更多关于php实现字符转URL实现代码 - php函数的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did31094