php 处理url,php处理带有中文URL的方法

本文介绍了一种解决PHP在处理含有中文URL时遇到的问题,特别是在IE6浏览器下。通过自定义的link_urldecode函数,将所有大于127的字节转换为16进制,从而正确处理中文字符,确保URL在IE6中能正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇文章主要介绍了php处理带有中文URL的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

这篇文章主要介绍了php处理带有中文URL的方法,涉及php编码转换相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了php处理带有中文URL的方法。分享给大家供大家参考,具体如下:

ie6超链接有中文的时候会有问题,万恶的ie6啊.PHP使内置的urlencode函数也不行,urlencode把斜杠等ascii码字符也给编码了,还是不能解决问题,使用下面的函数可以解决这个问题.

原理很简单,就是把所有byte大于127的byte转换为16进制.

中文超链接地址

// utf-8编码

$url = 'http://ftp.dotcoo.com/PHP视频教程.rar';

//urlencode结果:

echo urlencode($url);

http%3A%2F%2Fftp1.zdy.co%2Fmovie%2F%E6%88%91%E4%B8%BA%E7%9B%B8%E4%BA%B2%E7%8B%82.rmvb

//link_urldecode结果:

echo link_urldecode($url);

http://ftp1.zdy.co/movie/%E6%88%91%E4%B8%BA%E7%9B%B8%E4%BA%B2%E7%8B%82.rmvb

//link_urldecode函数:

function link_urldecode($url) {

$uri = '';

$cs = unpack('C*', $url);

$len = count($cs);

for ($i=1; $i<=$len; $i++) {

$uri .= $cs[$i] > 127 ? '%'.strtoupper(dechex($cs[$i])) : $url{$i-1};

}

return $uri;

}

相关推荐:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值