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




