PHP basename 函数 linux下中文路径的问题解决方法
来源:互联网 发布:360软件管家 卸载 编辑:程序博客网 时间:2024/05/21 00:18
basename函数用来获取路径中文件名部分,
可是在redhat4.3或者某些其他系统下,无法正确获得带有中文的路径中的文件名,
下面这个函数来自网上,很好很强大,可以代替basename使用:
function sbasename($filename) {
return preg_replace('/^.+[\\\\\\/]/', '', $filename);
}
如果linux系统不能正确显示中文目录和文件名,可以在/etc/profile的最后加入:
export LANG="zh_CN.GBK"
至于为什么没用UTF-8,因为中文windows系统的文件名似乎是gbk的,
用utf-8编码的文件名在windows系统下会显示为乱码。所以要用gbk的编码去写文件、目录名。
linux下也设置成gbk,就和windows服务器上的处理一致了。
本身php程序和数据库都是用了utf8的字符集,所以在处理文件名的时候需要来回转码,顺便贴一个比较安全的转码函数:
function siconv($str, $out_charset, $in_charset) {
if (strtoupper($out_charset) != strtoupper($in_charset)) {
if (function_exists('iconv') && (@$outstr = iconv("$in_charset//IGNORE", "$out_charset//IGNORE", $str))) {
return $outstr;
} elseif (function_exists('mb_convert_encoding') && (@$outstr = mb_convert_encoding($str, $out_charset, $in_charset))) {
return $outstr;
}
}
return $str;
}
可是在redhat4.3或者某些其他系统下,无法正确获得带有中文的路径中的文件名,
下面这个函数来自网上,很好很强大,可以代替basename使用:
function sbasename($filename) {
return preg_replace('/^.+[\\\\\\/]/', '', $filename);
}
如果linux系统不能正确显示中文目录和文件名,可以在/etc/profile的最后加入:
export LANG="zh_CN.GBK"
至于为什么没用UTF-8,因为中文windows系统的文件名似乎是gbk的,
用utf-8编码的文件名在windows系统下会显示为乱码。所以要用gbk的编码去写文件、目录名。
linux下也设置成gbk,就和windows服务器上的处理一致了。
本身php程序和数据库都是用了utf8的字符集,所以在处理文件名的时候需要来回转码,顺便贴一个比较安全的转码函数:
function siconv($str, $out_charset, $in_charset) {
if (strtoupper($out_charset) != strtoupper($in_charset)) {
if (function_exists('iconv') && (@$outstr = iconv("$in_charset//IGNORE", "$out_charset//IGNORE", $str))) {
return $outstr;
} elseif (function_exists('mb_convert_encoding') && (@$outstr = mb_convert_encoding($str, $out_charset, $in_charset))) {
return $outstr;
}
}
return $str;
}
- PHP basename 函数 linux下中文路径的问题解决方法
- PHP basename 函数 linux下中文路径的问题解决方法
- PHP basename()、dirname()、pathinfo()函数在linux环境下的注意事项
- basename处理包含中文的路径问题
- basename函数 中文问题
- PHP basename()函数
- linux下sublimetext的中文输入问题解决方法
- 支持中文的basename
- Linux下MySQL,jsp的中文问题解决
- 用C语言实现PHP的basename函数
- php中有关目录的几个函数 basename() dirname() pathinfo()
- 【basename】取出路径的文件名
- LINUX下php连接mssql数据库中文字符乱码问题解决
- GDAL\OGR C#中文路径不支持的问题解决方法
- GDAL\OGR C#中文路径不支持的问题解决方法
- PHP的file_exists函数不支持UTF-8编码下的中文文件目录路径
- php路径目录解析函数dirname basename pathinfo区别及实例
- 修改Linux下MySQL编码配置文件的办法,即中文乱码问题解决方法(实战篇)
- utf8 和 UTF-8 在使用中的区别
- PHP中的mb_convert_encoding与iconv函数介绍
- 将activesync改为不显示对话框而成为声音提示 rnaapp
- Chromium界面分析小结(二)主界面结构
- 关于android应用--内存的优化
- PHP basename 函数 linux下中文路径的问题解决方法
- 系统存储过程 描述 等
- Chromium界面分析小结(三)标题栏结构
- android java和javascript互调
- C++代码风格与规范
- Chromium界面分析小结(四)工具栏结构
- 【学习笔记】关于优先队列 Priority_queue
- 老家
- static 的作用