php读取txt文件,mysql中insert插入记录失败的问题-k8凯发旗舰

这次操作:遍历目录下的txt文件,然后将文件名和内容分别保存到mysql表中title和content字段。

操作结果:读取txt文件正常,写入mysql时,部分记录插入完成,部分记录插入失效。


相关记录插入部分代码:

 header("content-type:text/html;charset=utf-8");

 $title = str_replace('.txt','',$title);

 $str = file_get_contents($filepath, false, $context);

  $content = mb_convert_encoding($str,'utf-8');

 $content = addslashes($content);

 $data=array();

 $data['title']=$title;

 $data['content']=$content;

 

$sql ="insert into my_post(title,content) values(:title,:content)";

$sth = $pdo->prepare($sql);

$sth ->execute($data);


检查数据,$data中title和content都正确获取到了,字符类型为string,编码为utf8也没问题,检查mysql表字段等编码方式都没问题。

但是,部分txt文本未能正确写入mysql,可能是文本编码方式出现了问题,检测结果都是正确的utf8编码,这就让人头疼了。

pd.jpg

这个问题折腾了大爷一两天,老是找不到问题出处,狠不得把电脑都给砸了。


一直在想编码方式是不是混合了?

这些txt文件由html批量转化成txt文本,原来的html就是utf8编码格式,批量转txt文件的时候导致本来就是utf-8编码的文件又重新转码了一次。


这里的问题就是:utf-8编码再次转utf-8编码。


说了这么久,问题就是html页面转成txt文本时没有得到干净的utf-8编码txt文档,所以$content不能正确写入mysql。


问题是找到了,但是怎样解决这个问题呢?

先留在这里,想好了再补记一下吧。



#php #网站开发
发表评论
投稿
网站地图