CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  PHP

php如何取出特定字符?

楼主wchun(水晶沙拉)2003-12-01 12:39:40 在 Web 开发 / PHP 提问

实现一个普通的文件上传的功能。  
  为了处理中文名和重复的文件名。我把原文件的文件名进行随机编码:  
                    $filename   =   md5(uniqid(microtime(),1));        
  现在想把原来文件的扩展名取出来加到$filename   后面,形成xxxx.xxx形式。  
  例如我上传的文件名1.jpg   现在的$filename是d8f9a7f72b7a3063ebee5c08b915f249  
  我想变成d8f9a7f72b7a3063ebee5c08b915f249。jpg的形式。  
   
  不知道用正则表达式可以吗?  
   
  各位老大在上传文件是怎么样处理中文名和重复的文件名的呢? 问题点数:100、回复次数:4Top

1 楼xuzuning(唠叨)回复于 2003-12-01 13:02:42 得分 100

取得文件后缀名  
  function   extname($filename)   {  
      return   strtolower(substr(strrchr($filename,"."),1));  
  }  
   
  处理中文名,需要服务器操作系统支持,一般应避免使用中文名Top

2 楼wchun(水晶沙拉)回复于 2003-12-01 13:31:34 得分 0

谢谢分享!  
  那么邮件系统里面的附件能够使用中文名是怎么实现的?  
  我觉得下载下来是一大串字符做为文件名。有些不爽。  
  能不能做成点击下载的时候能够让默认的文件名改成中文的呢?Top

3 楼xuzuning(唠叨)回复于 2003-12-01 13:47:34 得分 0

能识别“中文文件名”确实是操作系统的问题。  
  至于通过http传送的文件名,由于一般浏览器默认设置为“始终用utf-8编码”所以是否能够正常传递是个不太确定的问题。比如在我使用的环境下,“中文文件名”可以正确下载,但不能正确访问。  
   
  “邮件系统里面的附件能够使用中文名”  
  是因为:  
  1、所在操作系统支持中文名;  
  2、附件是经base64编码的,中文用户自然能正确识别,其他的就不好说了。你不能指望美国人能认得“中文”吧?就如让文盲去读报纸吧?Top

4 楼wchun(水晶沙拉)回复于 2003-12-01 13:58:33 得分 0

结帖给分,谢谢帮忙!Top

相关问题

  • 怎么样取出一段字符中,特定字符串中间的字符串,ubb用阿
  • [请教各位大虾]如何处理一些较复杂的字符串?比如从中提取出特定的字符或者子字符串?
  • 怎样取出字符串?
  • 取特定字符串
  • richedit的字符怎么取出来?
  • 如何取出所要的字符??
  • 怎么取出一个字符串左边的n个字符?
  • 如何取出字符串中的某几个字符?
  • 如何从字符串中提取出数值字符。
  • VB.net怎么取出字符串中有多少个字符啊

关键词

  • 文件名
  • 中文
  • 编码
  • 文件
  • 操作系统
  • 下载
  • 附件
  • 处理
  • 使用
  • filename

得分解答快速导航

  • 帖主:wchun
  • xuzuning

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo