PHP searches for files with BOM tags and removes them

高洛峰
Release: 2016-10-21 10:25:16
Original
1385 people have browsed it

In a very large project, it is difficult for us to find out which file contains the BOM tag. If we manually open each file to check, it will consume a lot of our time and be very troublesome. We can easily find out whether all files in the current project or directory contain this BOM tag directly through the PHP program.

The code is as follows:

<?
//此文件用于快速测试UTF8编码的文件是不是加了BOM,并可自动移除
//By Bob Shen
  
$basedir="."; //修改此行为需要检测的目录,点表示当前目录
$auto=1; //是否自动移除发现的BOM信息。1为是,0为否。
  
//以下不用改动
  
if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file!=&#39;.&#39; && $file!=&#39;..&#39; && !is_dir($basedir."/".$file)) echo "filename: $file ".checkBOM("$basedir/$file")." <br>";
}
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=red>BOM found, automatically removed.</font>");
} else {
return ("<font color=red>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);
}
Copy after login

In fact, these codes were shared by me on the Internet. Since I am quite busy during this period, I don’t have time to optimize the code. Currently, I can only check the files with BOM tags in the current directory. You can also add functions yourself, such as

automatically detecting all files in the subdirectory under the current project.

You can also select files in a certain directory


Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template