We sometimes have to get rid of the UTF8 in the document head we often need to remove the manual, below I have compiled a few PHP programs to clear the UTF8 format files in the BOM head method, I hope to help you.
Example 1
The code is as follows |
Copy Code |
/** * Remove BOM header from the file * @var 0.1 * @author CHENWP */ function Clearbom ($contents) { UTF8 Remove BOM Header from text $BOM = Chr (239). chr (187). CHR (191); Return Str_replace ($BOM, ", $contents); } /** * Remove BOM header from the file * @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 do I convert a format with a BOM file to a UTF-8 format file without a signature? Let's share the following PHP code:
The code is as follows |
Copy Code |
This file is used to quickly test whether UTF8 encoded files are added to the BOM and can be automatically removed $basedir = "."; Modify this behavior to detect the directory where the point represents the current directory $auto = 1; Whether the discovered BOM information is automatically removed. 1 for Yes, 0 for No. Do not change the following if ($dh = Opendir ($basedir)) { while (($file = Readdir ($DH))!== false) { if ($file! = '. ' && $file! = ': ' &&!is_dir ($basedir. " /". $file)" echo "FileName: $file". Checkbom ("$basedir/$file"). " "; } 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); } End ?>
|
Example 3
The code is as follows |
Copy Code |
Set the root directory where you want to clear the BOM (all subdirectories and files will be scanned automatically) $HOME = DirName (__file__); If it is a Windows system, modify it to: $WIN = 1; $WIN = 0; ?>
UTF8 BOM Cleaner
$BOMBED = Array (); Recursivefolder ($HOME); Echo '
These files had UTF8 BOM, but I cleaned them: '; foreach ($BOMBED as $utf) {echo $utf. n "; } Echo ' '; Recursive scan function Recursivefolder ($sHOME) { Global $BOMBED, $WIN; $win = ($WIN = = 1)? "\" : "/"; $folder = Dir ($sHOME); $foundfolders = Array (); while ($file = $folder->read ()) { if ($file! = "." and $file! = "...") { if (filetype ($sHOME. $win. $file) = = "Dir") { $foundfolders [Count ($foundfolders)] = $sHOME. $win 32. $file; } else { $content = file_get_contents ($sHOME. $win. $file); $BOM = Searchbom ($content); if ($BOM) { $BOMBED [Count ($BOMBED)] = $sHOME. $win 32. $file; Move out of BOM information $content = substr ($content, 3); Write back to the original file File_put_contents ($sHOME. $win. $file, $content); } } } } $folder->close (); if (count ($foundfolders) > 0) { foreach ($foundfolders as $folder) { Recursivefolder ($folder, $win 32); } } } Search the current file for a BOM function Searchbom ($string) { if (substr ($string, 0,3) = = Pack ("CCC", 0XEF,0XBB,0XBF)) return true; return false; } ?>
|
http://www.bkjia.com/PHPjc/632745.html www.bkjia.com true http://www.bkjia.com/PHPjc/632745.html techarticle we sometimes have to get rid of the UTF8 in the document head we often need to manually clear, below I cleaned up a few PHP programs to clear the UTF8 format files in the BOM head method, I hope you have the same ...