用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1263|回复: 1
收起左侧

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

[复制链接]
发表于 2014-4-17 10:01:59 | 显示全部楼层 |阅读模式
我有这么一段代码,功能是得到文件的名称

要在windows和linux下都能使用

PHP复制代码
 
$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" 的时候 结果就对了

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

这是为什么?
 楼主| 发表于 2014-4-17 10:53:28 | 显示全部楼层
在网上找到这个函数 单的测试可以正确处理中文

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

为什么啊

PHP复制代码
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;
}
复制代码


本版积分规则