• 图片乱码问题 解决方法 php


    两个开发者都是下载同一个项目的git代码,但到本地环境,一个可以正常显示图片验证码,一个不行,找个半天开始以为环境问题 找了半天 不是 很多没说到重点 其实不只是当前文件格式问题 也要考虑其他调用文件UTF-8 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);   
    }   
    ?> 

     参考http://www.thinkphp.cn/topic/45120.html

  • 相关阅读:
    页面置换算法
    常见内存分配算法
    进程枚举
    NET程序之小试牛刀
    周易起名大师 v18.0算法分析
    VMP分析笔记(cmp命令在VM中的表达)
    一个重启验证软件的算法分析
    一次艰辛的算法分析---------飘零4.0封包分析
    某音频格式转换器算法分析
    一次苦中作乐的追码过程(下)
  • 原文地址:https://www.cnblogs.com/Dong-Ge/p/8066360.html
Copyright © 2020-2023  润新知