问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php创建中文文件名出错怎么解决?

发布网友 发布时间:2022-04-06 00:32

我来回答

3个回答

懂视网 时间:2022-04-06 04:53

php文件名不能中文的解决办法:首先将网页用utf-8编码和保存;然后将fopen里的文件名参数通过iconv函数单独进行编码即可避免中文文件名乱码。

推荐:《PHP视频教程》

php中fopen不能创建中文文件名文件的问题

之前网页的chartset用的是utf-8,文件也用utf-8,然后用fopen()创建一个中文文件名的文件时问题就出来了,文件名都是乱 码!

查看了很多文档试了不少方法都解决不了,本来想着用别的方法绕过这个问题,忽然脑子里闪过Windows默认的文字编码是ansi,然后再 baidu了一下,证实了这点,所以我的网页也应该是ansi编码才能使创建的文件名不会是乱码。

接着就着手验证,把网页都用ansi保存,去掉chartset语句,果然ok了,但是网页的内容就成乱码了,后来想起,这个网页还include 了别的网页,把include的网页也改成ansi保存,哈哈万事ok

编程这个工作真的很靠积累,如果我以前没看过Windows默认编码是ansi,那这个问题就不知何年何月才能解决了

ps:< meta content ="text/html; charset=utf-8" http -equiv ="Content-type" > 这个meta标记一定要放在<title></title>之前才有效的

后来又想到了一个更好的解决方法,网页还是用utf-8编码和保存,只是fopen()里的文件名参 数单独给它编下码就行,php有iconv() 这个改换编码的程序,把utf-8转成 gb2312就可以避免中文文件名为乱码了

test.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<title>标题:{title}</title>
</head>
<body>
<b>此新闻的内容:</b>{content}
</body>
</html>

test.php

<?php
 
 //实际应用中很可能是查询数据库取内容。
 $rows = array(array("替换标题1","替换内容1"),array("替换标题2","替换内容2"));
 $filename = "tmp.htm";
 foreach($rows as $id => $val){
 $title = $val[0];
 $content = $val[1];
 $pagename = "测试".$id.".html"; 
 //对文件名的编码,避免中文文件名乱码
 $pagename = iconv("UTF-8", "GBK", $pagename); 
 
 //读取模板
 $tmpfile = fopen($filename,"r");
 $string = fread($tmpfile,filesize($filename));
 $string = str_replace("{title}",$title,$string);
 $string = str_replace("{content}",$content,$string);
 fclose($tmpfile);
 //写新文件
 $newpage = fopen($pagename,"w");
 fwrite($newpage,$string);
 fclose($newpage);
 
 }
 echo "创建成功!";
?>

热心网友 时间:2022-04-06 02:01

看在什么系统, 如果是win系统, 中文名称得转换成gb2312编码, 否则会乱码!
除非php文件本身就是gb2312编码

热心网友 时间:2022-04-06 03:19

重命名
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
牡丹叶子枯了怎么办 牡丹枯叶怎么回事 "他同情冤魂、惩办恶人,既有同情心又主持公道,既可爱又恐怖” 冯宝成传销诈骗邪教组织 冯保成团队,传销诈骗,家人深陷其中,求助。 南朝词臣北朝客,归来唯见秦淮碧。 池台竹树三亩馀至今人道江家宅的意思 池台竹树三亩馀至今人道江家宅是什... 高效、加分学习工具——小小答题错题本上线了 如何将三张合在一起的图片合并 砂锅红烧肉的做法 最正宗的做法_砂锅红烧肉怎么做 砂锅版红烧肉做法: php文件夹处理时遇到中文出错 php文件上传问题如何解决,不能上传中文文件名的文件? 谷歌浏览器75.0.3770.100版本如何添加flash插件? 谷歌浏览器如何添加插件 谷歌浏览器显示不是私密连接怎么办 Chrome浏览器访问网页时出现您的连接不是私密连接,打不开https网页,该怎么办? 谷歌浏览器不是私密连接怎么解决 谷歌浏览器访问网页出现“您的连接不是私密连接”该怎么解决? 为什么我谷歌浏览器显示不了图片 我用的是chrome浏览器为什么我打开网上chrome网上应用点看不到图片 关于chrome 浏览器看图片和视频的问题。 为什么有的网页图片显示不了 求大神指教 本人用的谷歌浏览器 谷歌浏览器经常显示不了图片,为什么啊? 谷歌浏览器出现了图片打不开的问题 谷歌浏览器有些图片看不见,难道是中病毒? 百度贴吧 无法看见图片 所有图片都是一片空白, 我进百度贴吧老是不显示图片是为什么啊? 为什么百度贴吧不显示图片 为什么用谷歌浏览器打开网页时页面上很多图片都显示不出来? 无法浏览贴吧图片 php中文乱码怎么解决 浏览器怎么打开中文名字的PHP文件会出现乱码?是PHP文件不能以中文命名么? 如何解决PHP中文乱码问题? php遍历到的文件是中文文件名 显示为乱码 该如何解决 为什么php制作网页中无法正常显示中文 .php 文件的文件名是否不能含汉字?? 让php文件名为中文,或者所在文件夹为中文的php文件不会报错。开发环境wamp5 php 汉字显示错误 php上传怎么解决中文文件夹的问题?当遇到中文文件夹的时候文件就上传不了 PHP读取中文名称文件乱码,所以未能读取出文件内容 新手,php用什么工具来调试代码错误 有哪些 PHP 调试技巧? php 代码如何调试 如何让Editplus调试PHP程序,能提示错误行数. 能不能有详细一点的步骤 PHP高手指点 错误如何解决? PHP的程序是怎样调试的呢?? 如何对php项目,单个文件进行调试 在调试PHP网站后台的时候,出现一点错误,求助各位高手 php调试错误问题 syntax error, unexpected &#39;{&#39; 老是说这里有错,PHP怎么调试错误啊