当前位置:首页 » 好文分享 » 详情

    PHP在线清除文件BOM工具

    在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这也是用记事本编辑utf-8编码后执行就会出错的原因了。

    使用方法:将bom.php上传到网站根目录下,在浏览器中访问即可自动清除文件BOM。

    PHP源码:
    <?php  
    /*检测并清除BOM*/   
    /*www.325.hk*/
    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);  
     }   
    }  
    }
    }
    }
     
    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);
    }
     
    ?>

    打赏
    X
    打赏方式:
    • 支付宝
    • 微信
    • QQ红包

    打开支付宝扫一扫
    日期:2019年03月07日 07:46:47 星期三   分类:好文分享   浏览(39557)
    本文地址:https://www.blogs.hk/post-4218.html   [百度已收录]
    声明:本页信息由网友自行发布或来源于网络,真实性、合法性由发布人负责,请仔细甄别!本站只为传递信息,我们不做任何双方证明,也不承担任何法律责任。文章内容若侵犯你的权益,请联系本站删除!
    版权所有:《博客之家
    文章标题:《PHP在线清除文件BOM工具
    除非注明,文章均为 《博客之家》 原创
    转载请注明本文短网址:https://www.blogs.hk/post-4218.html  [生成短网址]

    留言咨询

    自动获取QQ

    昵称

    邮箱

    网址

        站点统计

        • 收录网址:3370 个
        • 发布文章:3008 条
        • 在线人数:1人
        • 总访问量:269218247次
        • 本站运行:12年4月18天
        Copyright © 2025 博客之家 版权所有  
        關於本站免責聲明sitemap新站登錄