回 帖 发 新 帖 刷新版面

主题:中文标题文件下载,点右键目标另存,提示无法下载,怀疑是中文路径格式转换问题

不知道该如何下手
以为会用到以下两个函数,又提示:iconv函数没定义的错误,我是远程修改,不能把iconv.dll放到system32目录下,着实郁闷。
哪位帮我一把啊。
//改变编码方式空格到%20!
      function phpescape($str){
    $sublen=strlen($str);
    $reString="";
    for ($i=0;$i<$sublen;$i++){
        if(ord($str[$i])>=127){
            $tmpString=bin2hex(iconv("GBK","ucs-2",substr($str,$i,2)));    //此处GBK为目标代码的编码格式,请实际情况修改

            if (!eregi("WIN",PHP_OS)){
                $tmpString=substr($tmpString,2,2).substr($tmpString,0,2);
            }
            $reString.="%u".$tmpString;
            $i++;
        } else {
            $reString.="%".dechex(ord($str[$i]));
        }
    }
    return $reString;
}


  //改变编码方式%20到空格!
function unescape($str) { 
         $str = rawurldecode($str); 
         preg_match_all("/%u.{4}|&#x.{4};|&#d+;|.+/U",$str,$r); 
         $ar = $r[0]; 
         foreach($ar as $k=>$v) { 
                  if(substr($v,0,2) == "%u") 
                           $ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,-4))); 
                  elseif(substr($v,0,3) == "&#x") 
                           $ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,3,-1))); 
                  elseif(substr($v,0,2) == "&#") { 
                           $ar[$k] = iconv("UCS-2","GBK",pack("n",substr($v,2,-1))); 
                  } 
         } 
         return join("",$ar); 
}

回复列表 (共1个回复)

沙发

搞定了,用这个函数urlencode了

我来回复

您尚未登录,请登录后再回复。点此登录或注册