`
qiujiayu
  • 浏览: 174108 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用PHP检测并去掉UTF-8中的BOM

    博客分类:
  • PHP
阅读更多

<?php
/*清除rom*/
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);
                }
            }
        }//end while
    closedir($dh);
    }//end if($dh
}//end function
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.");
}//end function
function rewrite($filename, $data){
    $filenum = fopen($filename, "w");
    flock($filenum, LOCK_EX);
    fwrite($filenum, $data);
    fclose($filenum);
}


?>

分享到:
评论

相关推荐

    批量去掉UTF-8文件中BOM标示符

    描述中提到的博文链接指向了一个ITEYE博客文章,虽然具体内容没有给出,但我们可以推测该文章可能提供了如何批量去除UTF-8文件BOM的教程或代码示例。ITEYE是一个知名的IT技术社区,这里的技术分享往往具有很高的参考...

    php utf-8编码去bom小工具

    标题 "php utf-8编码去bom小工具" 指的是一个PHP脚本,用于去除UTF-8编码文件中的BOM(Byte Order Mark)。BOM是UTF-8编码的一个可选特征,它在文件开头放置三个特殊的字节来标识文件的字符编码,但这可能会导致在...

    批量去除utf-8的bom头(php版)

    UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。 Windows就是使用BOM来...

    UTF-8 批量检测BOM工具/小软件 utf8 BOM批量检测/检查清除

    前次一次工程开发,有...本压缩包附带GB/BIG/UTF-8文件编码批量转换工具(文件名:GB2UTF81.exe) 这个工具很好很强大 还有一个bom批量检测清除工具,php版本的。只可惜只支持当前目录。不支持子目录(文件名:bom.php)

    UTF-8文件BOM标记批量删除工具.rar

    本工具用于批量去除UTF-8中的BOM标记,批量操作非常省时省力,再不用一个个文件去删除了默认类型为php|html|js|css,多类型可使用|分隔符进行分隔,支持将ANSI文件转为UTF8,建议在去除BOM文件头时,请先做好备份。

    PHP批量删除、清除UTF-8文件BOM头的代码实例

    1. 文件BOM头的检测与删除方法:通过检查文件的前三个字节是否符合UTF-8 BOM的特征(EF BB BF),来确定是否需要去除BOM头。 2. 文件的读写操作:使用file_get_contents()函数读取文件内容,然后根据需要删除BOM头...

    PHP实现UTF-8文件BOM自动检测与移除实例

    然而,BOM在某些场合中并不受欢迎,比如在用UTF-8编码格式保存的PHP文件中。如果文件开头有BOM,那么在执行这些PHP文件时可能会导致浏览器或其他工具无法正确解析文件内容。在这种情况下,我们需要对UTF-8文件进行...

    PHP页面转UTF-8中文编码乱码的解决办法

    最后,值得一提的是,在处理UTF-8编码文本时,标准的PHP函数如substr()并不完全适用于UTF-8编码的字符处理,因为它们是按字节来处理的,而UTF-8编码中一个字符可能占用多个字节。因此,需要使用专门处理UTF-8字符的...

    网站开发中遇到UTF8出现乱码问题.pdf

    可以使用编辑器如Dreamweaver或EditPlus进行重新保存并选择UTF-8无BOM编码。 3. 如果HTML文件存在BOM(Byte Order Mark),可能导致浏览器解析中文时出现乱码。可以通过Dreamweaver或EditPlus等工具去除BOM。 4. ...

    网站开发中遇到UTF8出现乱码问题.docx

    在编辑器中如Dreamweaver或EditPlus中选择“另存为”并设置编码为UTF-8。 3. BOM问题:BOM(Byte Order Mark)可能导致乱码。使用Dreamweaver或EditPlus等工具去除BOM。 4. Web服务器配置:Apache需在配置文件中设置...

    php去除BOM头

    在PHP开发中,"BOM头"(Byte Order Mark)是一个常常被提及的概念,尤其是在处理UTF-8编码的文本文件时。BOM头是Unicode字符集中的一个特殊标记,用于指示文件的编码类型。它由三个字节组成:0xEF, 0xBB, 0xBF。在...

    PHP实例开发源码-风吟PHP版BOM移除工具.zip

    BOM是Unicode编码中的一个特性,用来标识文件是用UTF-8、UTF-16还是UTF-32编码的。在UTF-8编码中,BOM由三个特定的字节序列(0xEF, 0xBB, 0xBF)组成,出现在文件的开头。对于大部分文本编辑器和PHP解释器来说,BOM...

    BOM检测工具 v1.0.0.rar

    总结来说,"BOM检测工具 v1.0.0"是一个专为PHP开发者设计的实用工具,用于检测和可能去除UTF-8文件中的BOM,以确保代码的正常运行和一致性。通过理解和利用这样的工具,可以提高代码质量,减少因编码问题导致的错误...

    去除所有页面BOM头

    例如,在PHP中可以使用`mb_convert_encoding($data, 'UTF-8', 'UTF-8-BOM')`来去掉BOM;在Node.js中,可以使用`iconv-lite`库进行转换。 3. 客户端处理:在前端,如果Ajax返回的数据受到BOM影响,可以在接收到数据...

    去bom头工具

    "去BOM头工具"就是针对这种情况设计的,它的主要功能是去除Eclipse中使用UTF-8带BOM编码格式的文件开头的BOM头。Eclipse是一个广泛使用的Java集成开发环境(IDE),它允许开发者配置项目的编码格式。在默认情况下,...

    php页面,mysql数据库转utf-8乱码,utf-8编码问题总结

    3. **附件文件名处理**:在PHP中以附件形式保存文件时,文件名若包含中文,需要使用`iconv()`函数将UTF-8编码的文件名转为GB2312,以防止乱码。 其次,MySQL数据库的编码问题: 1. **数据库和表的创建**:在创建...

    PHP乱码问题,UTF-8乱码常见问题小结

    若文件原为ANSI编码,需通过编辑器(如Notepad++、Sublime Text等)将其转换为UTF-8无BOM格式。 3. HTML文件BOM问题:有些工具在转换文件编码时,会在文件开头添加BOM(Byte Order Mark)。BOM会导致浏览器解析时...

    什么是BOM头,如何去掉BOM头.zip

    在UTF-8编码中,BOM头由三个字节组成(0xEF, 0xBB, 0xBF),它并不是必须的,但有时候会被添加到文件的开头来表明该文件是采用UTF-8编码。尽管BOM头对于某些程序来说是有用的,但它可能会引起一些问题,尤其是在处理...

Global site tag (gtag.js) - Google Analytics