提供zblog模板_zblog主题_wordpress模板的下载和定制

php保存添加bom头的txt文件和读取时去除txt的bom头

天兴工作室 2023-05-02 19:09 教程 596 0 评论


最近一个用户反映上传的txt文件直接用浏览器打开,有的浏览器正常有的会显示乱码。然后天兴工作室看了下判定是txt文件里面有中文,然后编码格式不对造成的,最简单的解决方法就是在电脑上保存txt文件格式选“UTF-8 BOM”,如下图所示:

2.png

本文则是来分享另外一种用php来处理txt编码的方法。

首先,用php保存带bom头txt文件,代码如下:

$str = '这里是一些中文'; //字符串
$str = chr(0xEF).chr(0xBB).chr(0xBF).$str; //加上bom头
$txt_path = '1.txt'; //文件保存路径
$fp = fopen($txt_path, "w");
fwrite($fp,$str);
fclose($fp);

然后是php读取txt文本文件时需要去除bom头。

先写一个处理bom头的函数:

//此函数来源于:https://www.feiniaomy.com/post/582.html
function del_bom($contents){
    $charset[1] = substr($contents, 0, 1);
    $charset[2] = substr($contents, 1, 1);
    $charset[3] = substr($contents, 2, 1);
    if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {
        $rest = substr($contents, 3);
        return $rest;
    }else{
        return $contents;
    }
}

然后读取txt先去掉bom头再读取:

$txt_path = '1.txt'; //txt文件路径
$upload_txt = file_get_contents($txt_path);
$upload_txt = del_bom($upload_txt);
echo $upload_txt;

以上就是用php来处理txt文本文件的bom头详细教程了。


没有找到能解决你问题的教程?

您可以试着搜索一下或者直接在线提问。我们也提供收费技术支持,有需要可以在线联系我们。

在线提问 在线客服

欢迎 发表评论: 取消回复

请填写验证码
  • 最新文章
  • 热文排行
  • 最多评论
标签聚合