【转】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);
}
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);
}
相关文章推荐
- [PHP]使用PHPMailer发送带附件并支持HTML内容的邮件
- PHP使用存储过程
- PHP如何使用事务
- FragmentPagerAdapter与FragmentStatePagerAdapter区别
- PHP简单计算器
- SMTP错误码/建议解决方法
- yii 1 安装教程
- Yii2框架中一些折磨人的坑
- windows 2008 64位iis 配置php
- PhpExcel使用方法
- php中数据库连接mysqli和mysql的区别
- LNMP系列——Php-fpm生产环境配置
- PHP中一些有用的函数
- windows mobile 6.5.3 如何精简系统,删除系统内置的Marketplace Messenger Windows Live等软件[OS开发者]
- PHP中的安全函数
- vsftpd服务及实现ftps
- IIS 运行PHP 正常使用MYSQL 解决报错0x000000ff
- yum ftp源搭建
- iBarn基于PHP MYSQL开源网盘 - 堪比百度网盘
- Xdebug+phpstorm配置