PHP BOM頭的問題

2021-08-02 09:10:04 字數 824 閱讀 6910

我有個php檔案的功能是讀取乙個二進位制檔案並且echo出來,該檔案本來是檔案,但是我訪問這個php檔案並且寫入到本地硬碟的時候發現並不是格式

hexdump檢視的時候發現檔案首部多了3個位元組,這不剛好就是bom的utf8編碼的十六進製制表示麼,後來找到原因是因為有個同事包含了乙個使用了bom頭的php檔案導致,該位元組在文字編輯器裡是不可見的,著實增加了除錯難度。

導致這個問題的原因是 bom頭是在php的標記

ef bb bf 

<?php

echo111;

?>

去除方法:

在windows上如果使用的是phpstom的話,在file選單下面的有remove bom的選單項

查詢包含bom頭的檔案,命令如下:

grep -r -i -l $'^\xef\xbb\xbf' ./

這條命令會查詢當前目錄及子目錄下所有包含bom頭的檔案,並把檔名在螢幕上輸出。

但是,刪除bom頭,網上找到的命令大多不能用,比較常見的命令是:

grep -r -i -l $'^\xef\xbb\xbf' /path | xargs sed -i 's/^\xef\xbb\xbf//;q'

但這條命令會把除了首行之外所有的行刪除,所以毫無意義。

經測試如下命令是可行的:

find . -type f -exec sed -i 's/\xef\xbb\xbf//' {} \;

這個命令會把當前目錄及所有子目錄下的bom頭刪除掉。

UITableView的分割槽頭 懸停問題

我們開發經常用到uitableview,而它的分割槽頭也會用到,分割槽頭在螢幕頂部和底部會有懸停功能。那就要說到uitableview的兩種格式,uitableviewstylegrouped和uitableviewstyleplain uitableviewstylegrouped 分割槽頭隨著螢...

OpenCV開啟攝像頭問題

先看一段 這段 是有問題的,問題在於 因為電腦開啟攝像頭需要一定的時間,所以frame cvqueryframe capture 第一次執行完後沒法獲取到第一幀。include cv.h include highgui.h int main int argc,char argv else asser...

筆試面臨的j攝像頭問題

這個問題我今天下午做筆試時碰到了,最後成功解決,可以好好解答下。1 先上解決方案 1 chrome版本 這是應急的方法,但不完美,因為有的人就想讓chrome的版本保持最新 比較強迫症患者 2 網頁 這個才是最關鍵的,因為一般的webcam 就是我們用的usb攝像頭 都是能在qq上直接用的,但是為什...