pathinfo()在php不同版本中对于对多字节字符处理的不同结果
phpinfo()函数在处理路径时,在php的低版本中无法处理多字节字符,这里测试的是php5.3和php5.6 的区别
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
<?php// your code goes hereecho phpversion();print_r(pathinfo("/resources/img/stock/wxb001/美景.png")); 输出:5.6.4-2Array( [dirname] => /resources/img/stock/wxb001 [basename] => 美景.png [extension] => png [filename] => 美景)但是在php5.3.3版本中<?php// your code goes hereecho phpversion();print_r(pathinfo("/resources/img/stock/wxb001/美景.png")); 输出:5.3.3Array( [dirname] => /var/www/www.shima.jp.net/resources/img/stock/wxb001 [basename] => .png [extension] => png [filename] => )// 同时,在php5.3中basename()也会过滤掉多字节字符
echo basename('/resources/img/stock/wxb001/美景.png')
// 输出:.png
|
那么在低版本中可以使用下面方法来实现多字节字符的处理
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php// your code goes here $file = '/resources/img/stock/wxb001/美景.png';
$file_dir = dirname($file );$file_basename = substr(strrchr($file, DIRECTORY_SEPARATOR), 1);$file_name = substr($file_basename, 0, strrpos($file_basename, "."));$file_extension = end(explode(".", $file_basename));echo $file_dir; // /resources/img/stock/wxb001echo $file_basename; // 美景.pngecho $file_name; // 美景echo $file_extension; // png |
pathinfo()在php不同版本中对于对多字节字符处理的不同结果的更多相关文章
- debug、 release两个版本中正确运行的一些经验
在Qt编程中,默认的是debug版本,在编译器中可以正常的使用,但是单独运行.exe可执行文件时却发现系统提示缺少文件.其实就是缺少必要的.dll动态库文件.根据提示添加需要的.dll动态库文件即可. ...
- [译] OpenStack Kilo 版本中 Neutron 的新变化
OpenStack Kilo 版本,OpenStack 这个开源项目的第11个版本,已经于2015年4月正式发布了.现在是个合适的时间来看看这个版本中Neutron到底发生了哪些变化了,以及引入了哪些 ...
- [译] OpenStack Liberty 版本中的53个新变化
一个新的秋季,一个新的OpenStack 版本.OpenStack 的第12个版本,Liberty,在10月15日如期交付,而且目前发行版本已经备好了.那么我们期望能从过去六个月时间的开发中获得些什么 ...
- IE对象最后一个属性后不要加逗号,否则在IE7及以下版本中会报错
某函数返回一个对象,如果在最后一个属性后加逗号,IE7及以下版本中会报错 正确代码: return{ top:rect.top-top, bottom:rect.bottom-top, left:re ...
- 在不同的pyhon版本中切换
issue discription 在一台电脑上同时安装了python2.7和python3.5,怎样在这两个版本中切换调用? solution to the issue 进入python安装文件夹, ...
- 解决Maven项目编译时提示:源值1.5已过时,将在未来所有版本中删除
每次编译项目时,都提示:源值1.5已过时,将在未来所有版本中删除 查了一些资料,发现是因为IDEA默认把项目的源代码版本设置为jdk1.5,目标代码设置为jdk1.5 解决方案: 修改Maven的S ...
- 微软BI 之SSIS 系列 - 2008 版本中变量 Int64 无法保存 bigint 类型数据的BUG
开篇介绍 这是今天在帮别人看一个 2008R2 版本的项目时发现的一个 Bug,这个 Bug 在 SQL SERVER 2012 有的版本中可能已经解决,但在论坛上看到有的仍然存在. 在 SQL SE ...
- OpenGL2.0及以上版本中glm,glut,glew,glfw,mesa等部件的关系
OpenGL2.0及以上版本中gl,glut,glew,glfw,mesa等部件的关系 一.OpenGL OpenGL函数库相关的API有核心库(gl),实用库(glu),辅助库(aux).实用工具库 ...
- 海蜘蛛ISPV6.1.5,目前破解版本中最稳定的!
海蜘蛛ISPV6.1.5,目前破解版本中最稳定的! 破解步骤如下: 一.安装完毕进控制台 二.使用muddyboot登陆 密码(123456) 三.输入root回车 四.输入regtools回车 五. ...
随机推荐
- IExpress 制作安装包 注意事项
被打包的文件名不能超过8个字符,否则iexpress会取前6个字符 + "~1".
- postgresql 的操作
基本操作: \o /tmp/11.txt ,查询结果输出到文件 \d 查询table结构 \x 切换显示方式 postgresql中可以导出某个sql的执行结果到文件中,方法是在psql中首先执行\o ...
- TPCC-MySQL的安装与使用
Tpcc-mysql 是 percona 基于 tpcc 衍生出来的产品,专用于 mysql 基准测试,其源码放在 bazaar 上( Bazaar 是一个分布式的版本控制系统,采用 GPL 许可协议 ...
- C++中怎么创建类对象
在C++里,有两种方法创建对象:方法一:ClassName object(param);这样就声明了一个ClassName类型的object对象,C++会为它分配足够的存放对象所有成员的存储空间.注意 ...
- IDEA artifacts Web Application:Exploded Web Application:Archive
首先,artifacts是maven中的一个概念,表示项目/modules如何打包,比如jar,war,war exploded,ear等打包形式,一个项目或者说module有了artifacts 就 ...
- DDBS
distributed database system 分布式数据库系统
- IIS7配置下载apk以及目录浏览
IIS7为了增加安全性,如果需要禁止目录浏览.只需要按下面的步骤执行就可以 1.选择站点:2.选择功能视图:3.选择IIS下面的目录浏览:4.在右上角的操作中选择“打开功能”:5.选择右边的禁用. 今 ...
- mac安装protobuf2.4.1时报错./include/gtest/internal/gtest-port.h:428:10: fatal error: 'tr1/tuple' file not found和google/protobuf/message.cc:175:16: error: implicit instantiation of undefined template
通过网上下载的protobuf2.4.1的压缩文件,然后进行安装,./configure和make时遇到了两个问题. 正常的安装步骤如下: ./configure make make check m ...
- html图片链接不显示图片
html图片链接不显示图片,如下示: <a href="index.jsp"><img src="/img/index.png"/>&l ...
- LuoguP1126 机器人搬重物(BFS)
题目链接:https://www.luogu.org/problemnew/show/P1126 思路:很不错的搜索题,用BFS,虐了我1天多才A掉 QAQ,细节很多. 1.每个状态包含行.列.方向. ...