您的位置:首页 > 编程语言 > PHP开发

【转】PHP里的basename函数不支持中文名的解决

2015-09-12 10:08 501 查看
今天用到basename 函数获取文件名称时,发现如果是中文的文件名返回只有后缀的空文件名(如:.pdf)
string basename ( string path [, string suffix] )
说明
给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以 suffix 结束的,那这一部分也会被去掉。
方法一:按照网站上找到说法是此函数依赖于区域设置,如果是多字节名称返回为空可以通过setlocale函数如下设置

view plainprint?

<?php

setlocale(LC_ALL, 'zh_CN.GBK');

// or any other locale that can handle multibyte characters.

?>

最好是修改服务器的区域设置来整体解决!

方法二:php自带的basename函数不支持中文,下面这个方法是最简单的实现。

view plainprint?

function get_basename($filename){

return preg_replace('/^.+[\\\\\\/]/', '', $filename);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: