file_get_contents读取路径中包含中文文件名问题 $data = file_get_contents($file_names);中$file_names中指向的路径中包含中文文件名称就报错[function.file-get-contents]: failed to open stream: No such file or directory不用中文的文件名就可以,纠结啊!不能重命名文件的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $file_names = "D:/我的文档/Youku Files\download/[LIVE]汪峰.-.春天里.flv";$s = file_get_contents($file_names);echo strlen($s);//7216760不存在你说的问题,当然你要正确的书写文件名(包括语言编码) $data = file_get_contents($file_names); $a = "/charset(\s*)=(\s*)[\w|-]{0,20}/"; preg_match($a, $data, $match); $data2 = str_replace($match[0],"charset=gb2312",$data); file_put_contents($file_names,$data2); echo "<script type='text/javascript'>location.href='$file_names';</script>";完整的代码是这样的,下面的js已经把文件打开了,这证明路径应该是对的!我读取文件的目的其实只想改一下里面的编码,可是文件名称用中文的就没有被正则替换,英文的就成功替换了! 关键在于你的 $file_names 中的文件名的编码要与操作系统的语言编码一致 中文的时候看下echo strlen($data);有没有取到内容 iconv("utf-8", "gbk",file_get_contents('url'));先换成操作系统的编码试试能打开文件内容吗?你这主要是中文路径打不开文件,获取不到内容所以无法替换吧 对的!中文名称的时候,strlen($data)没有内容,英文就可以了! 本帖最后由 xuzuning 于 2012-05-17 16:29:00 编辑 本帖最后由 xuzuning 于 2012-05-18 07:35:45 编辑 php版本是PHP5.3.10我不编码转换出来的名称就都是乱码了!的确pathinfo好使! 关于PHP header的问题 我想学习网页网站设计,拜师,求指点 段双晋:php有gmdate()函数,那么mysql呢? 如何对外让服务器开启一个端口啊,高手指教啊! 请问如何以正则随机获取其中任何一个 用什么方法判断是否有文件上传? 点击一个链接 怎么让其以特定的浏览器打开? 数据库的问题! header("WWW-Authenticate:Basic realm=\"网张使用者\"") 怎么会有错? 关于163邮箱SMTP功能公司网络禁用、需要实现SMTP功能 PHPMailer问题!!! 大虾帮忙看看看这个代码有什么问题?
$s = file_get_contents($file_names);
echo strlen($s);//7216760不存在你说的问题,当然你要正确的书写文件名(包括语言编码)
$a = "/charset(\s*)=(\s*)[\w|-]{0,20}/";
preg_match($a, $data, $match);
$data2 = str_replace($match[0],"charset=gb2312",$data);
file_put_contents($file_names,$data2);
echo "<script type='text/javascript'>location.href='$file_names';</script>";完整的代码是这样的,下面的js已经把文件打开了,这证明路径应该是对的!我读取文件的目的其实只想改一下里面的编码,可是文件名称用中文的就没有被正则替换,英文的就成功替换了!
先换成操作系统的编码试试能打开文件内容吗?你这主要是中文路径打不开文件,获取不到内容所以无法替换吧