产品服务AMH 免费服务器主机面板SSL证书 免费SSL证书申请编程助手免费智能写代码、翻译NewAMYSQL 免费MySQL管理工具AMFTP 免费FTP管理客户端

AMH 社区首页

 AMH社区 - 开放自由有价值的社区

[综合话题] 【分享】关于网站验证码不显示,开了GD库也无法显示的解决方法。

9513645
银牌会员
1428.02 价值分

9513645 发表于 2017-05-15 00:46:08
这其实是UTF8文件中的BOM头在作怪,以下是我找到的一段代码,大家只要把它放在一个php文件中运行即可.
此代码会自动搜索根目录下所有文件,如果有BOM直接修改,没事就运行一下,修修更健康~!



<?php
/*清除bom*/
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);
}
}
}//end while
closedir($dh);
}//end if($dh
}//end function
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.");
}//end function
function rewrite($filename, $data){
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}
?>
评价: 这个话题有价值吗?  没有 (0分)   有, 感谢 (3.83分)
2017-05-15 00:46:08 1

894587758
铝牌会员
307.47 价值分

学习学习 赞一下
评价: 这个回复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2017-05-16 08:52:33 2

kint7669
铜牌会员
718.05 价值分

学习学习 赞一下
评价: 这个回复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2017-05-16 14:06:21 3
 1  (总1页)
AMH社区列表
用户服务中心