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

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

view plainprint?

  1. <?php
  2. setlocale(LC_ALL, ‘zh_CN.GBK‘);
  3. // or any other locale that can handle multibyte characters.
  4. ?>

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

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

view plainprint?

  1. function get_basename($filename){
  2. return preg_replace(‘/^.+[\\\\\\/]/‘, ‘‘, $filename);
  3. }
时间: 2024-10-11 06:00:02

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

Ubantu里面的Sublime Text3不支持中文的解决办法

参考的大佬链接:https://github.com/lyfeyaj/sublime-text-imfix 更新然后将系统升级到最新版本,在linux终端输入 sudo apt-get update && sudo apt-get 在本地目录中克隆此repo:    如果你没有git的话就安装一个 git clone https://github.com/lyfeyaj/sublime-text-imfix.git 将您当前的目录更改为sublime-text-imfix: cd subl

关于Linux系统basename函数缺陷的思考

某模块作为前台进程独立运行时,运行命令携带命令行参数:作为某平台下守护进程子进程运行时,需要将命令行参数固化在代码里.类似如下写法: char *argv[] = {"./DslDriver", "-t", "/bin/VdslModemSco.bin"}; int argc = sizeof(argv) / sizeof(argv[0]); 随后,调用basename函数(头文件为libgen.h)解析argv[0],即"./DslD

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

关于php basename()函数的基本使用方法,大家可以查看这篇文章<php basename()解析路径并获取文件名称> 有两种方法可以解决basename()函数无法获取带中文字符的文件名 用setlocale()函数设置区域方法 preg_replace()正则表达式方法 下面具体了解每种方法如何实现basename()支持中文 第一种方法:setlocale()函数设置区域 basename()函数依赖于区域,所以我们需要使用setlocale()为其设置区域 <?php s

js里各浏览器解析XML,支持IE、火狐、Chrome等

js在chrome中加载XML,js加载XML支持ff,IE6+,Opera等浏览器 见代码: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js里各浏览器解析XML,支持IE.火狐.Chrome等</title> </head> <body> <script> fu

js时间格式化函数,支持Unix时间戳

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta charset="utf-8"> <title>js时间格式化函数,支持Unix时间戳</title> </head>

详解php 获取文件名basename()函数的用法

PHP 中basename()函数给出一个包含有指向一个文件的全路径的字符串,此函数返回基本的文件名,本篇文章收集了关于使用PHP basename()函数获取文件名的几篇文章,希望对大家理解使用PHP basename()函数获取文件名有所帮助. 1.详解php basename()函数获取文件名的用法 php basename()函数给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名.如果文件名是以 suffix 结束的,那这一部分也会被去掉.在 Windows 中,斜线(/

PHP Curl 函数,支持POST GET

/** * @author default7<[email protected]>  * @param $url * @param string $method * @param array $postData * * @return mixed|null|string */ function getHttpContent($url, $method = 'GET', $postData = array()) { $data = ''; if (!empty($url)) { try { $c

在父页面和其iframe之间函数回调 父页面回调iframe里写的函数

// @shaoyang  父页面 window['mengBanLogin']={ mengBanArr : new Array(), mengBanLoginSuccess : function(){ console.log('mengbanzhixing'); if(mengBanLogin.mengBanArr.length > 0){ for(var i = mengBanLogin.mengBanArr.length-1; i >= 0; i--){ mengBanLogin.me

Delphi-仿vb里的IIF函数

1 //Delphi 函数-IIF 2 // 实例-ChkValue := IIF(TCheckBox(tsPzJz.Controls[i]).Checked, '1', '0'); 3 function IIF(lExp: boolean; vExp1, vExp2: variant): variant; overload; 4 begin 5 if lExp then 6 Result := vExp1 7 else 8 Result := vExp2; 9 end; Delphi-仿vb里