配置文件出现BOM头(文件编码改变)引发的问题
2016-12-01 11:02
399 查看
今天早上发现,所有的网站页面头部出现一块大的空白,审查元素发现head 里面的内容进入body里面。最后发现是修改的文件编码改变了。然后重新保存一下,就解决了。如果不确定是哪个文件的bom出现问题可以使用一下代码。
<?php
$basedir = str_replace('/clearBOM.php','',str_replace('\\','/',dirname(__FILE__)));
$auto = 1;
checkdir($basedir);
function checkdir($basedir){
if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file != '.' && $file != '..'){
if (!is_dir($basedir.'/'.$file)) {
$filename = $basedir.'/'.$file;
echo 'filename:'.$basedir.'/'.$file.checkBOM($filename).'<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=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);
}
?>
<?php
$basedir = str_replace('/clearBOM.php','',str_replace('\\','/',dirname(__FILE__)));
$auto = 1;
checkdir($basedir);
function checkdir($basedir){
if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file != '.' && $file != '..'){
if (!is_dir($basedir.'/'.$file)) {
$filename = $basedir.'/'.$file;
echo 'filename:'.$basedir.'/'.$file.checkBOM($filename).'<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=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);
}
?>
相关文章推荐
- PHP中utf-8编码格式之BOM引发的问题
- JSP 修改Tomcat配置文件解决中文编码问题!
- MySQL终极配置解决UTF8编码出现的乱码问题
- php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
- ubuntu系统下gedit 打开GBK字符集编码文件出现乱码问题解决办法
- 更正ftp上传采用utf-8编码方式写入txt文件用IE打开出现乱码的问题
- 网站部署到IIS7上出现HTTP 错误 500.19(由于权限不足而无法读取配置文件)的问题
- ndk环境配置修改bash_profile文件时出现的问题
- 解决IIS7虚拟目录出现HTTP 错误 500.19(由于权限不足而无法读取配置文件)的问题
- IO 流读取文件时候出现乱码 文件编码格式问题 怎么转换解决方法
- php文件代码采用UTF-8编码的BOM问题
- 网站部署到IIS7上出现HTTP 错误 500.19(由于权限不足而无法读取配置文件)的问题
- properties配置文件编码格式问题
- ubuntu系统下gedit 打开GBK字符集编码文件出现乱码问题解决办法
- 在一个Struts-config的配置文件中写多个Action中出现的问题
- 从配置文件(*.config)读到内存中,手动修改配置文件后,内存中数据改变问题.
- IIS7虚拟目录出现HTTP错误500.19(由于权限不足而无法读取配置文件)的问题
- IIS7虚拟目录出现HTTP错误500.19(由于权限不足而无法读取配置文件)的问题
- sax解析xml文件出现编码错误问题Invalid byte 1 of 1-byte UTF-8 sequence.
- IIS MVC下多站点部署 多个配置文件引发问题