首页 后端开发 PHP问题 php bom怎么去掉

php bom怎么去掉

Dec 08, 2021 am 10:17 AM
bom

去掉php bom的方法:1、找到PHP根目录;2、将“function checkBOM($filename){...}”等代码放到根目录下,并通过浏览器运行访问即可。

php bom怎么去掉

本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。

php bom怎么去掉?

PHP去除BOM简单的方法

/* 
 +------------------------------------------------------------------------------------------- 
 + Title        : 去掉BOM头方法 
 + Author       : hello_sgw 
 + Version      : V1.0.0.1 
 + Initial-Time : 2017-08-12 15:18
 + Last-time    : 2017-08-12 16:01
 + Desc         : 
 +------------------------------------------------------------------------------------------- 
*/
登录后复制

自己在调用接口时候,因为用到了对方提供的封装方法,在输出一组数据时候一直显示错误,最后想到可能对方给的方法里面含有编码问题(具有BOM头),所以上网搜索到一个检测BOM的方法并且可以去除重新生成新文件,运用之后就能正常显示数据了。

什么是BOM头?

BOM --Byte Order Mark,中文名译作“字节顺序标记”,在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,

现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这也是用记事本编辑utf-8编码后执行就会出错的原因了。

解决方法:

# 这里代码为PHP方式去除当前目录及字目录所有文件BOM信息,只要将此代码文件放到根目录下,然后浏览器运行访问就可以了
<?php
if (isset($_GET[&#39;dir&#39;])) { //设置文件目录 
  $basedir = $_GET[&#39;dir&#39;];
} else {
  $basedir = &#39;.&#39;;
}
 
$auto = 1;
checkdir($basedir);
 
function checkdir($basedir)
{
  if ($dh = opendir($basedir)) {
    while (($file = readdir($dh)) !== false) {
      if ($file != &#39;.&#39; && $file != &#39;..&#39;) {
        if (!is_dir($basedir . "/" . $file)) {
          echo "filename: $basedir/$file " . checkBOM("$basedir/$file") . " <br>";
        } else {
          $dirname = $basedir . "/" . $file;
          checkdir($dirname);
        }
      }
    }
    closedir($dh);
  }
}
function checkBOM($filename)
{
  global $auto;
  $contents  = file_get_contents($filename);
  $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) {
    if ($auto == 1) {
      $rest = substr($contents, 3);
      rewrite($filename, $rest);
      return ("<font color=&#39;red&#39;>BOM found, automatically removed.</font>");
    } else {
      return ("<font color=&#39;red&#39;>BOM found.</font>");
    }
  } else
    return ("BOM Not Found.");
}
 
function rewrite($filename, $data)
{
  $filenum = fopen($filename, "w");
  flock($filenum, LOCK_EX);
  fwrite($filenum, $data);
  fclose($filenum);
}
登录后复制

推荐学习:《PHP视频教程

以上是php bom怎么去掉的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

dom和bom对象有哪些 dom和bom对象有哪些 Nov 13, 2023 am 10:52 AM

dom和bom对象有:1、“document”、“element”、“Node”、“Event”和“Window”等5种DOM对象;2、“window”、“navigator”、“location”、“history”和“screen”等5种BOM对象。

bom和dom有什么区别 bom和dom有什么区别 Nov 13, 2023 pm 03:23 PM

bom和dom在作用和功能、与JavaScript的关系、相互依赖性、不同浏览器的兼容性和安全性考虑等方面都有区别。详细介绍:1、作用和功能,BOM的主要作用是操作浏览器窗口,它提供了浏览器窗口的直接访问和控制,而DOM的主要作用则是将网页文档转换为一个对象树,允许开发者通过这个对象树来获取和修改网页的元素和内容;2、与JavaScript的关系等等。

dom和bom实现了什么 dom和bom实现了什么 Nov 20, 2023 pm 02:28 PM

DOM实现了对网页内容的动态访问和更新,BOM则提供了与浏览器窗口进行交互的API,包括控制浏览器的行为、获取浏览器和用户环境的信息,DOM主要用于操作网页内容,而BOM则主要用于操作浏览器窗口和与浏览器交互,两者共同构成了Web前端开发中重要的基础,为开发者提供了丰富的方法来控制和操作网页及浏览器,实现交互性强、用户体验良好的Web应用程序。

PHP bom的定义及其应用场景 PHP bom的定义及其应用场景 Mar 09, 2024 pm 09:36 PM

PHPBOM的定义及其应用场景BOM(ByteOrderMark),即字节顺序标记,是一种用来标示文本编码格式的特殊字符序列。在PHP开发中,BOM通常用来解决一些特定的编码问题,在一些情况下,如果不正确地处理BOM可能会导致页面显示乱码或其他问题的发生。本文将详细介绍PHPBOM的定义以及其应用场景,并附上具体的代码示例来让读者更好地理解。一、PH

php 代码怎么去掉bom php 代码怎么去掉bom Oct 20, 2022 am 09:29 AM

php代码掉bom的方法:1、使用“function clearbom($contents){...}”方式去掉文本中的bom头;2、通过“function checkBOM ($filename) {...}”方法检测并去掉bom头;3、通过“function SearchBOM($string) {...}”方法搜索当前文件是否有BOM并去除即可。

探究PHP bom的含义和作用 探究PHP bom的含义和作用 Mar 10, 2024 pm 10:45 PM

PHPbom的含义和作用在PHP编程中,BOM(ByteOrderMark)是一种特殊的字符序列,用于标识文件的编码方式和字节顺序。BOM通常是在文件开头的位置插入的,以便让解析器识别编码方式,特别是对于一些不以ASCII编码开始的编码格式,例如UTF-8。BOM在不同的编码格式下有不同的作用,下面将具体探究PHP中BOM的含义和作用,并结合代码示例加

前端bom和dom什么区别 前端bom和dom什么区别 Nov 13, 2023 pm 02:36 PM

区别有:1、含义不同,bom是指浏览器对象模型,dom是指文档对象模型;2、结构不同,bom以浏览器窗口为中心,dom文档中的元素被表示为节点,并按照树状结构进行组织;3、交互方式不同,bom通过Window对象与JS进行交互,dom通过对象之间的嵌套和引用进行交互;4、应用范围不同,bom用于浏览器窗口和浏览器的交互,dom用于文档内容的操作和交互;5、发展趋势不同等等。

bom和dom的核心对象是什么 bom和dom的核心对象是什么 Nov 13, 2023 pm 02:49 PM

bom和dom的核心对象分别是window对象和document对象。window对象代表浏览器窗口,并提供了一系列方法和属性来操作浏览器窗口,窗口对象可以通过JavaScript代码来访问和控制,它提供了一些常用的方法。document对象代表了当前网页的文档,它提供了一系列方法和属性来操作网页的内容,通过document对象,可以访问和操作网页中的各个元素。

See all articles