去掉utf-8 BOM头,解决验证码无法显示问题
时间:2011-07-20
来源:互联网
问题描述:很多朋友都比较纠结验证码无法显示的问题,检查代码也没有发现任何问题,到底是什么情况?
解决方案:
解决方法一:查看包含验证码函数的文件,建议用editplus或者ue,在文件编码中选择utf8或者是utf8去除BOM的项,然后保存。
解决方法二:网上有专门写的去除文件BOM头的程序,现在公布出来,可以放在项目根目录,然后运行。
复制代码
解决方案:
解决方法一:查看包含验证码函数的文件,建议用editplus或者ue,在文件编码中选择utf8或者是utf8去除BOM的项,然后保存。
解决方法二:网上有专门写的去除文件BOM头的程序,现在公布出来,可以放在项目根目录,然后运行。
- <?php
- if (isset($_GET['dir'])){ //config the basedir
- $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);
- }
- ?>
作者: efcdk9090 发布时间: 2011-07-20
这个具体怎么操作啊,以什么文件名啊?还有代码复制过去,提示错误好多!是怎么回事啊 !
作者: zmxthink 发布时间: 2011-07-21
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28