PHP basename 函数 linux下中文路径的问题解决方法

关于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
/* 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

原文地址:https://www.cnblogs.com/jiangzq/p/9106189.html

时间: 2024-11-05 19:42:42

PHP basename 函数 linux下中文路径的问题解决方法的相关文章

Linux下安装 TestLink常见问题解决方法

Read/write permissions For security reason we suggest that directories tagged with [S] on following messages, will be made UNREACHEABLE from browser Checking if C:\xampp\htdocs\testlink-1.9.5\gui\templates_c directory exists OK Checking if C:\xampp\h

windows下的txt文件传到Linux下中文乱码问题

之所以出现乱码是因为所压缩的文件中,有的文件是以中文命名.而在windows下中文的编码一般为gbk,而linux下中文的编码一般为utf8,所以在windows下正常打开的文件,到linux下很可能会出现乱码. 解决办法为:使用命令iconv对文件内容编码进行转换.例如我有一个文件"linux常用命令"在windows下打开正常,而在linux下打开则会乱码,办法为在终端输入: iconv -f gbk -t utf8 inputfile > outputifile 注意:ou

linux下中文输入法的安装

今天,在LinuxSLC5.3上安装了中文输入法,过程如下:原文出自[比特网],转载请保留原文链接:http://soft.chinabyte.com/os/102/11459102.shtml 1.安装中文字体库 yum install "font-chinese" 2.安装scim输入法 yum install "scim*" 3.安装scim-lang-chinese,scim-pinyin yum install scim-lang-chinese scim

JAVA压缩 解压缩zip 并解决linux下中文乱码

1. [代码][Java]代码   1:再压缩前,要设置linux模式, 需要使用第三方ant-1.6.5.jar  如果是文件目录,则ZipEntry zipEntry=new ZipEntry(basePath + System.getProperties().getProperty("file.separator"));zipEntry.setUnixMode(755);//解决linux乱码 如果是文件,则 ZipEntry zipEntry=new ZipEntry(base

LINUX下中文语言包的安装(转)

在安装盘上已经有各种语言包了,我们只需要找到他们,并安装就可以了.中文的是fonts-chinese-3.02-9.6.el5.noarch.rpmfonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm我用的是6CD的安装盘,第一个包在4of6盘上,第二个在6of6盘上,进入各文件对应目录,运行下面命令:#rpm -ivh fonts-chinese-3.02-9.6.el5.noarch.rpm#rpm -ivh fonts-ISO8859-2-75dpi-1.0-

让你提前认识软件开发(51):VC++集成开发环境中Linux下Pclint工程的配置方法及常见错误修改

第3部分 软件研发工作总结 VC++集成开发环境中Linux下Pclint工程的配置方法及常见错误修改 [文章摘要] Pclint是一种C/C++软件代码静态分析工具.它是一种更加严格的编译器,能够发现普通编译器所不能发现的代码中的很多问题,因此被广泛应用于软件开发项目中. 本文介绍了如何在VC++集成开发环境中配置Linux下的Pclint工程,给出了C语言中pclint规则A检查的常见错误,并描述了对应的修改办法. [关键词] VC++  Pclint  配置  操作  修改 1. 前言 P

linux下重新定位svn url方法

linux下重新定位svn url方法: 如果更换了SVN服务器,就需要重新定位,指向新的svn url. 重新定位命令:svn switch --relocate 原svn地址 新svn地址. 查看原svn路径方法:svn info linux下重新定位svn url方法

Linux中文显示乱码问题解决方法(编码查看及转换)

Linux中文显示乱码问题解决方法(编码查看及转换) 1,示例 图中名为一个.sql文件的一段内容,是一个数据库文件.其在windows中打开显示正常,在Linux中,中文部分显示为乱码. 注意:这个与数据库乱码的情况不同,属于文件内容的乱码. 2,分析 Linux系统与windows系统在编码上有显著的差别.Windows中的文件的格式默认是GBK(gb2312),而Linux系统中文件的格式默认是UTF-8.这两个系统就好比是中国和日本.文件就好比是一个人,如果要在另外的国家居住就要办理居住

Linux下Git和GitHub使用方法总结 (码云)

初学先记住这几条,其他慢慢研究. 下面讲如何用码云完成一个项目的提交, 我的步骤 https://git.oschina.net/phpervip/qianzhu(此例:一个企业模板): 先在码云上注册一个帐号. 然后新建项目,就有一个git地址. 本地进入你的项目目录. 初始化项目->建远程连接->获取项目->添加版本->版本提交->远程提交 git init git remote add origin https://git.oschina.net/phpervip/qi