200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 验证码不能显示?通常都是BOM信息惹的祸此代码能解决验证码不能显示问题.

验证码不能显示?通常都是BOM信息惹的祸此代码能解决验证码不能显示问题.

时间:2020-01-26 02:51:03

相关推荐

验证码不能显示?通常都是BOM信息惹的祸此代码能解决验证码不能显示问题.

php教程|php手册

thinkphp代码,代码示例,代码参考,php短信,数据库备份代码,令牌验证,去除代码中的空白和注释

php教程-php手册

有时,我们在本地测试环境中需要显示验证码的地方没有问题,一旦布置到服务器上去的时候.需要显示验证码的地方无法显示?如果你也碰到同样问题,请往下看.

问题的原因大部分是BOM头信息造成的,通常thinkphp的配置文件都要去除BOM头信息.什么是BOM头信息?百度一下就知道啦.

我通常的解决办法是,布置到服务器上去之后,新建一个去除所有文件的BOM头信息的代码文件.然后运行之即可.

比如:我在服务器根目录新建一个delBom.php文件.运行/delBom.php即可.代码如下:<?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")."

";

}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 ("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);

}

?>

悠悠影视网站源码,vscode代码检错,要不要自动升级ubuntu,加入tomcat包,sqlite中的时间,js农历插件,用前端框架做页面,爬虫的合法性,广告系统 php,seo术语大全,云存储网站系统源码,网页裂变源码,36kr模板,手机话费充值微信程序源码lzw

AD:真正免费,域名+虚机+企业邮箱=0元

微信拆红包网站源码,ubuntu查看所有网卡,tomcat404日志,爬虫系统er图,php版娱乐网源码,上海搜索seolzw

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。