访问含有中文路径的视频,一般都是进行urlencode访问。
但是在实际项目中出现访问 urlencode中文路径 返回403的情况。
这个时候需要urlencode2次,就可以解决。
<!-- lang: php -->
<?php echo urlencode(urlencode($rs2['nurl']));?>
此方法在apache服务器测试通过。
================= 2014-01-13 更新 实际情况中可能文件夹也是中文的,直接2次urlencode后访问会出现404的错误,访问不了资源。 经测试,应该是 ”/“也被转义的原因。
所以需要处理下整个url。代码如下:
<!-- lang: php -->
function pUrl($url){
$urlinfo = parse_url($url);
$pathArray = explode("/",$urlinfo['path']);
foreach($pathArray as $key=>$value){
$pathArray[$key] = urlencode(urlencode($value));
}
$urlinfo['path'] = implode("/",$pathArray);
return $urlinfo['scheme'].'://'.$urlinfo['host'].$urlinfo['path'];
}