dolphin 发表于 2014-4-17 10:01:59

得到名称为中文的文件的名称问题?

我有这么一段代码,功能是得到文件的名称

要在windows和linux下都能使用


$file_name= basename( $sub_dir );
$file_exts    = pathinfo( $sub_dir, PATHINFO_EXTENSION );
$file_title   = basename( $file_name, ".".$file_exts );
$file_title   = iconv('GB2312','UTF-8//IGNORE',$file_title);
$file_name= iconv('GB2312','UTF-8//IGNORE',$file_name);



例如 $sub_dir = "myfile/测试文档.txt"

我希望得到的是

$file_title = "测试文档"

$file_name = "测试文档.txt"

现在的测试结果是 都等于 ".txt"

但是当 $sub_dir = "myfile/_测试文档.txt" 的时候 结果就对了

只要第一个字符不是中文字符就可以。

这是为什么?

dolphin 发表于 2014-4-17 10:53:28

在网上找到这个函数 单的测试可以正确处理中文

在codeigniter控制器里面使用就不可以

为什么啊

function path_info($filepath)   
{   
    $path_parts = array();   
    $path_parts ['dirname'] = rtrim(substr($filepath, 0, strrpos($filepath, '/')),"/")."/";   
    $path_parts ['basename'] = ltrim(substr($filepath, strrpos($filepath, '/')),"/");   
    $path_parts ['extension'] = substr(strrchr($filepath, '.'), 1);   
    $path_parts ['filename'] = ltrim(substr($path_parts ['basename'], 0, strrpos($path_parts ['basename'], '.')),"/");   
    return $path_parts;
}

页: [1]
查看完整版本: 得到名称为中文的文件的名称问题?