免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4067 | 回复: 15
打印 上一主题 下一主题

[系统] php5下basename 无法使用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-29 11:07 |只看该作者 |倒序浏览
echo basename("你好.txt")
只是显示.txt
怎么解决这个问题?

[ 本帖最后由 HonestQiao 于 2006-6-29 11:18 编辑 ]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
2 [报告]
发表于 2006-06-29 11:18 |只看该作者
中文问题。

不要用中文的。

论坛徽章:
0
3 [报告]
发表于 2006-06-29 11:21 |只看该作者
可是我做的是upload程序
要list和move文件时候必须要用到这个程序
对于文件名无法控制是中文还是英文

论坛徽章:
0
4 [报告]
发表于 2006-06-29 14:30 |只看该作者
顶一下

论坛徽章:
0
5 [报告]
发表于 2006-06-29 14:34 |只看该作者
原帖由 wenuy 于 2006-6-29 11:21 发表
可是我做的是upload程序
要list和move文件时候必须要用到这个程序
对于文件名无法控制是中文还是英文

中文就先编码下 或者换个名字吧!

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
6 [报告]
发表于 2006-06-29 15:00 |只看该作者
或者md5一下子,最简单了。

论坛徽章:
0
7 [报告]
发表于 2006-06-29 15:08 |只看该作者
只有自己写函数处理了
  1. /**
  2. * 函数 cpathinfo
  3. * 功能 双字节可靠的路径信息
  4. **/
  5. if(! function_exists('cpathinfo')):
  6. function cpathinfo($path, $type=0) {
  7.         $path = str_replace('\\', '/', $path);
  8.         if(substr($path, -1) == '/') {
  9.                 $path = substr($path, 0, -1);
  10.         }
  11.         $t = split('/', $path);
  12.         $r['basename'] = array_pop($t);
  13.         $r['dirname'] = join('/', $t);
  14.         $r['extension'] = substr(strrchr($r['basename'], '.'), 1);
  15.         switch($type) {
  16.                 case PATHINFO_EXTENSION:
  17.                         return $r['extension'];
  18.                 case PATHINFO_BASENAME:
  19.                         return $r['basename'];
  20.                 case PATHINFO_DIRNAME:
  21.                         return $r['dirname'];
  22.         }
  23.         return $r;
  24. }
  25. endif;

  26. /**
  27. * 函数 cbasename
  28. * 功能 双字节可靠的basename
  29. **/
  30. if(! function_exists('cbasename')):
  31. function cbasename($path) {
  32.         return cpathinfo($path, PATHINFO_BASENAME);
  33. }
  34. endif;

  35. /**
  36. * 函数 cdirname
  37. * 功能 双字节可靠的dirname
  38. **/
  39. if(! function_exists('cdirname')):
  40. function cdirname($path) {
  41.         return cpathinfo($path, PATHINFO_DIRNAME);
  42. }
  43. endif;
复制代码

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
8 [报告]
发表于 2006-06-29 15:23 |只看该作者

  1. $path = "/home/httpd/html/你好.php";
  2. $file = getfname ($path);        // $file is set to "index.php"
  3. echo $file;

  4.    function getfname($url){
  5.        $pos = strrpos($url, "/");
  6.        if ($pos === false) {
  7.            // not found / no filename in url...
  8.            return false;
  9.        } else {
  10.            // Get the string length
  11.            $len = strlen($url);
  12.            if ($len < $pos){
  13.                        print "$len / $pos";
  14.                // the last slash we found belongs to [url]http://[/url] or it is the trailing slash of a URL
  15.                return false;
  16.            } else {
  17.                $filename = substr($url, $pos+1, $len-$pos-1);
  18.            }
  19.        }
  20.        return $filename;
  21.    }

复制代码

论坛徽章:
0
9 [报告]
发表于 2006-06-29 15:36 |只看该作者
谢谢了~~~
还有个问题
你们碰到这个问题时候也是采用substr方式来解决吗?
原先我也采用乔大的方式来做
后来用多了问题就出来
对于一些特殊字符如“音乐”(具体我也忘了)
会出现切的不完全导致最后几个汉字出现乱码情况

论坛徽章:
0
10 [报告]
发表于 2006-06-29 15:38 |只看该作者
而且也样子
函数也将变的有点别扭
对于以后后续开发会有问题
能不能直接在系统这一块来解决
或者还有别的什么方法
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP