花魁直播高品质美女在线视频互动社区 - 花魁直播官方版

 歡迎來到素材無憂網(wǎng),按 + 收藏我們
登錄 注冊(cè) 退出 找回密碼

PHP批量去除bom頭代碼的小工具

時(shí)間: 2018-12-14 09:09 閱讀: 作者:素材無憂網(wǎng)

在 aitecms 群里有網(wǎng)友抱怨了好幾天說本地的驗(yàn)證碼一直無法顯示,后來聽說解決了,問其如何解決的,說是去除了文件 bom 就好了。后來百度到一篇文章也說 dedecms 的驗(yàn)證碼不能顯示,某次解決了文件 bom 后竟然好了,于是本篇文章就顯得很重要了。

網(wǎng)上轉(zhuǎn)載的,出處已經(jīng)不可考了,不知道原作者是誰,在這里先向作者表示感謝。

代碼如下:
 

<?php
    /*
     * PHP批量去除bom頭代碼的小工具
     * http://blog.kilvn.com/
     */

    if (isset($_GET['dir'])){ //設(shè)置文件目錄
        $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);
    }

保存為一個(gè)php文件,放到網(wǎng)站根目錄下,可以遍歷文件夾并自動(dòng)清除bom,對(duì)文件絕對(duì)安全,親測(cè)過的。

版權(quán)聲明: 本站資源均來自互聯(lián)網(wǎng)或會(huì)員發(fā)布,如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除!謝謝!

轉(zhuǎn)載請(qǐng)注明: PHP批量去除bom頭代碼的小工具

標(biāo)簽:  
模板推薦