PHP basename 函数 linux下中文路径的问题解决方法
Posted jiangzq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP basename 函数 linux下中文路径的问题解决方法相关的知识,希望对你有一定的参考价值。
关于php basename()函数的基本使用方法,大家可以查看这篇文章《php basename()解析路径并获取文件名称》
有两种方法可以解决basename()函数无法获取带中文字符的文件名
- 用setlocale()函数设置区域方法
- 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
/* http://www.manongjc.com/article/1296.html */
function get_basename($filename){
return preg_replace(‘/^.+[\\\\\\/]/‘, ‘‘, $filename);
}
$path = "/home/www/data/用户.txt";
$filename = get_basename($path);
print $filename;
?>
输出:用户.txt
以上是关于PHP basename 函数 linux下中文路径的问题解决方法的主要内容,如果未能解决你的问题,请参考以下文章
linux 系统函数之 (dirname, basename)
带有多字节 UTF-8 文件名的 PHP basename() 和 pathinfo()