我们大家都知道,php basename()函数用于从路径中获取文件名,但如果文件名包括中文字符将无法正确获取到结果,本文章向大家介绍如何解决basename()函数无法获取带中文字符的文件名,需要的朋友可以参考一下。


关于php basename()函数的基本使用方法,大家可以查看这篇文章《php basename()解析路径并获取文件名称

有两种方法可以解决basename()函数无法获取带中文字符的文件名

1、用setlocale()函数设置区域方法
2、preg_replace()正则表达式方法


下面具体了解每种方法如何实现basename()支持中文

第一种方法:setlocale()函数设置区域
basename()函数依赖于区域,所以我们需要使用setlocale()为其设置区域

<?php

setlocale(LC_ALL, 'zh_CN.GBK'); $path = "/home/www/data/用户.txt"; $filename = basename($path);

print $filename;

?>
输出:用户.txt

第二种方法:preg_replace()正则表达式
<?php

function get_basename($filename){    
     return preg_replace('/^.+[\\\\\\/]/', '', $filename);    
}
$path = "/home/www/data/用户.txt";
$filename = get_basename($path); 

print $filename;

?>
输出:用户.txt


点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部