basename函数 中文问题

前段时间对学校一电影站做了点修改,动态生成文件给用户下载,其中需要向一个页面传递一些参数,有些是中文。今天再去看,发现在下载的时候文件名中的中文全部获取不到,php中使用的是basename函数,前几天还好好的。在我本机上也没问题,就是放到服务器上就出现这个问题,参数传递中的中文是没有问题的,页面中能获取到,问题就除在basename这个函数上,更深层的问题没找到,可能跟php的版本或者配置有关系吧。既然basename不行,那就换一种方式吧!在网上看到一个利用正则表达式匹配出uri中文件名及后缀的方法,这个方法效率比利用substr和strrpos来做要高的多。

function get_basename($filename){

     return preg_replace('/^.+[\\\\\\/]/', '', $filename);
}

正则表达式处理字符串的能力真的是十分的强大啊!看来必须要掌握好这个知识点。好久没用php,以前学的都忘得差不多了...

posted @ 2012-05-16 19:49  心静欣  阅读(146)  评论(0编辑  收藏  举报