相信许多人都遇到过网页顶部空白的问题,并且代码中出现head代码解析到了body中,我也遇到了这个问题,但是我去网上找了很多的方法都没有解决我这个问题,是BOM头的问题吗?但是我处理了我的网页了,还是不行,代码问题?也不是?
经过我测试,发现PHP解析后会出现顶部空白,静态页是没有的,也就是说顶部空白是PHP解析过后出现的,所以,虽然我没在模板网页中添加BOM头文件,但是PHP的文件中可能有BOM头文件,所以,要解决问题,就要清除所有的BOM头文件
以下是清楚所有文件的代码,将代码写入根目录,遍历就是去掉所有目录中的BOM,代码摘自网络,忘记在哪看的了
<?php
if
(isset(
$_GET
[
'dir'
])){
//设置文件目录
$basedir
=
$_GET
[
'dir'
];
}
else
{
$basedir
=
'.'
;
}
$auto
= 1;
checkdir(
$basedir
);
function
checkdir(
$basedir
){
if
(
$dh
= opendir(
$basedir
)) {
while
((
$file
= readdir(
$dh
)) !== false) {
if
(
$file
!=
'.'
&&
$file
!=
'..'
){
if
(!
is_dir
(
$basedir
.
"/"
.
$file
)) {
echo
"filename: $basedir/$file "
.checkBOM(
"$basedir/$file"
).
" <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
);
}
?>
![](https://img-blog.csdn.net/20140915114300075)