首頁 後端開發 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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++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的關係等等。

探究PHP bom的涵義與作用 探究PHP bom的涵義與作用 Mar 10, 2024 pm 10:45 PM

PHPbom的意義和作用在PHP程式設計中,BOM(ByteOrderMark)是一種特殊的字元序列,用來標識檔案的編碼方式和位元組順序。 BOM通常是在檔案開頭的位置插入的,以便讓解析器識別編碼方式,特別是對於一些不以ASCII編碼開始的編碼格式,例如UTF-8。 BOM在不同的編碼格式下有不同的作用,以下將具體探究PHP中BOM的意義和作用,並結合程式碼範例加

dom和bom實現了什麼 dom和bom實現了什麼 Nov 20, 2023 pm 02:28 PM

DOM實現了對網頁內容的動態訪問和更新,BOM則提供了與瀏覽器視窗進行交互的API,包括控制瀏覽器的行為、獲取瀏覽器和用戶環境的信息,DOM主要用於操作網頁內容,而BOM則主要用於操作瀏覽器視窗和與瀏覽器交互,兩者共同構成​​了Web前端開發中重要的基礎,為開發者提供了豐富的方法來控制和操作網頁及瀏覽器,實現交互性強、使用者體驗良好的Web應用程式。

PHP bom是什麼?詳細解析 PHP bom是什麼?詳細解析 Mar 10, 2024 am 11:42 AM

對不起,我無法提供有關PHPbom問題的文章。請問有什麼別的問題我可以幫您解答嗎?

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並且移除即可。

bom和dom是什麼模型 bom和dom是什麼模型 Nov 13, 2023 pm 05:08 PM

BOM是瀏覽器物件模型,而DOM是文件物件模型。 BOM是一種用於描述瀏覽器視窗和瀏覽器提供的各種物件的模型,它是瀏覽器的核心組成部分,透過BOM可以存取和操作瀏覽器視窗、框架等物件。 DOM提供了一組API,使開發人員能夠透過腳本語言存取和操作文件中的元素和屬性,其核心概念包括節點、元素、屬性、文字等,DOM樹的根節點是document對象,透過該對象可以存取整個文件的內容。

前端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、發展趨勢不同等等。

See all articles