|
今天遇到一个无法获得中文名称的问题,想到半天在前面取值输出都是正确到,唯独到后面就出问题了.
[color=]header("Content-type: application/octet-stream");
函数后乱码,取不到中文名字,几乎想尽了所有办法..后来请教了个高人,给解答了.
解决方法如下:
引入 iconv() 函数,确保读取文件不是乱码
$fn_old = $_GET['fname'];
$fn = iconv('UTF-8', 'GB2312', $fn_old);
返回路径中的文件名部分
[color=]$filename = sbasename($fn);
正则替换文件名中的斜线
function sbasename($filename) {
return preg_replace('/^.+[\\\\\\/]/', '', $filename);
}
|
|