<?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);
}
?>
分享到:
相关推荐
描述中提到的博文链接指向了一个ITEYE博客文章,虽然具体内容没有给出,但我们可以推测该文章可能提供了如何批量去除UTF-8文件BOM的教程或代码示例。ITEYE是一个知名的IT技术社区,这里的技术分享往往具有很高的参考...
标题 "php utf-8编码去bom小工具" 指的是一个PHP脚本,用于去除UTF-8编码文件中的BOM(Byte Order Mark)。BOM是UTF-8编码的一个可选特征,它在文件开头放置三个特殊的字节来标识文件的字符编码,但这可能会导致在...
UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。 Windows就是使用BOM来...
前次一次工程开发,有...本压缩包附带GB/BIG/UTF-8文件编码批量转换工具(文件名:GB2UTF81.exe) 这个工具很好很强大 还有一个bom批量检测清除工具,php版本的。只可惜只支持当前目录。不支持子目录(文件名:bom.php)
本工具用于批量去除UTF-8中的BOM标记,批量操作非常省时省力,再不用一个个文件去删除了默认类型为php|html|js|css,多类型可使用|分隔符进行分隔,支持将ANSI文件转为UTF8,建议在去除BOM文件头时,请先做好备份。
1. 文件BOM头的检测与删除方法:通过检查文件的前三个字节是否符合UTF-8 BOM的特征(EF BB BF),来确定是否需要去除BOM头。 2. 文件的读写操作:使用file_get_contents()函数读取文件内容,然后根据需要删除BOM头...
然而,BOM在某些场合中并不受欢迎,比如在用UTF-8编码格式保存的PHP文件中。如果文件开头有BOM,那么在执行这些PHP文件时可能会导致浏览器或其他工具无法正确解析文件内容。在这种情况下,我们需要对UTF-8文件进行...
最后,值得一提的是,在处理UTF-8编码文本时,标准的PHP函数如substr()并不完全适用于UTF-8编码的字符处理,因为它们是按字节来处理的,而UTF-8编码中一个字符可能占用多个字节。因此,需要使用专门处理UTF-8字符的...
可以使用编辑器如Dreamweaver或EditPlus进行重新保存并选择UTF-8无BOM编码。 3. 如果HTML文件存在BOM(Byte Order Mark),可能导致浏览器解析中文时出现乱码。可以通过Dreamweaver或EditPlus等工具去除BOM。 4. ...
在编辑器中如Dreamweaver或EditPlus中选择“另存为”并设置编码为UTF-8。 3. BOM问题:BOM(Byte Order Mark)可能导致乱码。使用Dreamweaver或EditPlus等工具去除BOM。 4. Web服务器配置:Apache需在配置文件中设置...
在PHP开发中,"BOM头"(Byte Order Mark)是一个常常被提及的概念,尤其是在处理UTF-8编码的文本文件时。BOM头是Unicode字符集中的一个特殊标记,用于指示文件的编码类型。它由三个字节组成:0xEF, 0xBB, 0xBF。在...
BOM是Unicode编码中的一个特性,用来标识文件是用UTF-8、UTF-16还是UTF-32编码的。在UTF-8编码中,BOM由三个特定的字节序列(0xEF, 0xBB, 0xBF)组成,出现在文件的开头。对于大部分文本编辑器和PHP解释器来说,BOM...
总结来说,"BOM检测工具 v1.0.0"是一个专为PHP开发者设计的实用工具,用于检测和可能去除UTF-8文件中的BOM,以确保代码的正常运行和一致性。通过理解和利用这样的工具,可以提高代码质量,减少因编码问题导致的错误...
例如,在PHP中可以使用`mb_convert_encoding($data, 'UTF-8', 'UTF-8-BOM')`来去掉BOM;在Node.js中,可以使用`iconv-lite`库进行转换。 3. 客户端处理:在前端,如果Ajax返回的数据受到BOM影响,可以在接收到数据...
"去BOM头工具"就是针对这种情况设计的,它的主要功能是去除Eclipse中使用UTF-8带BOM编码格式的文件开头的BOM头。Eclipse是一个广泛使用的Java集成开发环境(IDE),它允许开发者配置项目的编码格式。在默认情况下,...
3. **附件文件名处理**:在PHP中以附件形式保存文件时,文件名若包含中文,需要使用`iconv()`函数将UTF-8编码的文件名转为GB2312,以防止乱码。 其次,MySQL数据库的编码问题: 1. **数据库和表的创建**:在创建...
若文件原为ANSI编码,需通过编辑器(如Notepad++、Sublime Text等)将其转换为UTF-8无BOM格式。 3. HTML文件BOM问题:有些工具在转换文件编码时,会在文件开头添加BOM(Byte Order Mark)。BOM会导致浏览器解析时...
在UTF-8编码中,BOM头由三个字节组成(0xEF, 0xBB, 0xBF),它并不是必须的,但有时候会被添加到文件的开头来表明该文件是采用UTF-8编码。尽管BOM头对于某些程序来说是有用的,但它可能会引起一些问题,尤其是在处理...