Home  >  Article  >  Backend Development  >  How to remove bom from php code

How to remove bom from php code

藏色散人
藏色散人Original
2022-10-20 09:29:331733browse

How to remove BOM from php code: 1. Use "function clearbom($contents){...}" to remove the BOM header in the text; 2. Use "function checkBOM ($filename) {.. .}" method to detect and remove the BOM header; 3. Use the "function SearchBOM($string) {...}" method to search whether the current file has a BOM and remove it.

How to remove bom from php code

The operating environment of this tutorial: Windows 7 system, PHP version 8.1, Dell G3 computer.

How to remove BOM from php code?

PHP batch removes BOM headers from utf8 format files

I often use a txt text editor to write PHP files, so BOM headers are often automatically added, resulting in many times This will cause problems, such as our session not working, cookies not being set, etc.

Below I have compiled several methods to use PHP programs to clear BOM headers in UTF8 format files.

Example 1

The code is as follows

/**
* 去掉文件中的 bom头
* @var 0.1
* @author Chenwp
*/
function clearbom($contents){
//UTF8 去掉文本中的 bom头
$BOM = chr(239).chr(187).chr(191);
return str_replace($BOM,”,$contents);
}



/**
* 去掉文件中的bom头
* @param object $fileName Description
* @return object    Description
*/
function clearfilebom($fileName){
$c = file_get_contents($fileName);
$c = clearbom($c);
file_put_contents($fileName,$c);
}

Example 2

How to convert the format with BOM file into an unsigned UTF-8 format file? ? Let me share with you a piece of PHP code:

The code is as follows

”;
}
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 (“BOM found, automatically removed.”);
} else {
return (“BOM found.”);
}
}
else return (“BOM Not Found.”);
}

function rewrite ($filename, $data) {
$filenum=fopen($filename,”w”);
flock($filenum,LOCK_EX);
fwrite($filenum,$data);
fclose($filenum);
}
//结束
?>

Example 3

will automatically scan all subdirectories and files

The code is as follows






UTF8 BOM 清除器


These files had UTF8 BOM, but i cleaned them:

’; foreach ($BOMBED as $utf) { echo $utf .”
n”; } echo ‘

’; // 递归扫描 function RecursiveFolder($sHOME) { global $BOMBED, $WIN; $win32 = ($WIN == 1) ? “\” : “/”; $folder = dir($sHOME); $foundfolders = array(); while ($file = $folder->read()) { if($file != “.” and $file != “..”) { if(filetype($sHOME . $win32 . $file) == “dir”){ $foundfolders[count($foundfolders)] = $sHOME . $win32 . $file; } else { $content = file_get_contents($sHOME . $win32 . $file); $BOM = SearchBOM($content); if ($BOM) { $BOMBED[count($BOMBED)] = $sHOME . $win32 . $file; // 移出BOM信息 $content = substr($content,3); // 写回到原始文件 file_put_contents($sHOME . $win32 . $file, $content); } } } } $folder->close(); if(count($foundfolders) > 0) { foreach ($foundfolders as $folder) { RecursiveFolder($folder, $win32); } } } // 搜索当前文件是否有BOM function SearchBOM($string) { if(substr($string,0,3) == pack(“CCC”,0xef,0xbb,0xbf)) return true; return false; } ?>

Recommended learning: "PHP Video Tutorial"

The above is the detailed content of How to remove bom from php code. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn