但是PHP讀取時會因為跳脫字元而使的中文檔名掛掉,
所以一般都會重新編碼
但這樣在管理上就比較麻煩
讀取中文檔時:htmlentities(urlencode($pic_file))
寫入中文檔時:
function BIG5_name($name){
//判別中文是否能轉換為BIG5碼,若不行則以日期顯示
$tname=iconv("utf-8","big5",$name);
if( mb_strlen($name,"utf-8") <> mb_strlen($tname,"big5") ){
$per_name_big5="";
for($ai=0;$ai < mb_strlen($name,"UTF-8");$ai++){
$str_tmp=mb_substr($name,$ai,1,"UTF-8");
mt_srand((double)microtime()*1000000);
if( mb_strlen(iconv("utf-8","big5",$str_tmp),"big5") ==0 )
$per_name_big5 .= mt_rand(10,99);
else $per_name_big5 .=$str_tmp;
}
}else $per_name_big5=$name;
//判別中文是否為跳脫字元(許功蓋),若不行則以日期顯示
$name=$per_name_big5;
$tname=iconv("utf-8","big5",$name);
if(substr_count(urlencode($tname),"%5C") > 0 ) {
$per_name_big5="";
for($ai=0;$ai < mb_strlen($name,"UTF-8");$ai++){
$str_tmp=mb_substr($name,$ai,1,"UTF-8");
mt_srand((double)microtime()*1000000);
if(substr_count(urlencode(iconv("utf-8","big5",$str_tmp)),"%5C") > 0 )
$per_name_big5 .= mt_rand(10,99);
else $per_name_big5 .=$str_tmp;
}
}else $per_name_big5=$name;
return $per_name_big5;
}