`

PHP检测并清除文件开头的BOM

    博客分类:
  • PHP
阅读更多
<?php
ini_set('memory_limit', '-1');
/*检测并清除BOM*/
$basedir = dirname(__FILE__);//扫描当前文件路径 可自动设置
$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);
}//end function

 

分享到:
评论

相关推荐

    PHP删除bom头方法实例

    通常在UTF-8编码的文件中,如果存在BOM头,那么文件的开头会有三个不可见的字符:\xEF\xBB\xBF。虽然大多数现代编辑器能够正确处理BOM头,但在某些情况下,例如在PHP中包含或处理这些文件时,BOM头可能会引起错误,...

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

    标题"批量去掉UTF-8文件中BOM标示符"指的是处理这一问题的方法,即通过特定工具或代码删除UTF-8文件开头的BOM标识。这个过程通常是为了确保文件在不同的系统和环境中能够正确无误地被读取和处理。 描述中提到的博文...

    批量去除bom的代码

    描述中提到,这个代码可以帮助开发者解决BOM问题,意味着它提供了一个自动化处理流程,避免了手动打开每个文件并逐个删除BOM的繁琐工作。这不仅可以节省大量时间,还能减少人为错误的可能性。 基于这些信息,我们...

    检查php文件中是否含有bom的函数

    4. 自动删除文件中的BOM:如果检测到BOM,可以编写一个函数来清除它。这个函数会读取文件内容,跳过开头的BOM字节,然后将剩余的内容写回到原文件中。 5. 编码处理和文件操作:在PHP中处理文件时,需要使用到文件...

    基于PHP的BOM移除工具源码.zip

    在"基于PHP的BOM移除工具源码.zip"中,我们可以预期找到的是一套用PHP编写的代码,它的功能是检测并移除UTF-8编码文件开头的BOM标记。这个工具对于那些需要确保其PHP脚本或HTML文件无BOM的开发者来说,是非常实用的...

    bom.rar_BOM

    BOM是Unicode编码格式的一种标记,它在文件开头用于标识该文件采用的字符编码类型,但在某些情况下,如在网页中,BOM可能会导致不必要的空白或乱码。 描述中提到的“php清楚文件头部bom,以使得清除网站页面顶部的...

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

    在PHP开发中,如果遇到因BOM头导致的隐形字符问题,可以使用上述方法去除BOM,或者在代码处理文件前先进行BOM检测和去除。 总的来说,虽然BOM头在某些情况下是有帮助的,但大多数时候它更像是一种潜在的隐患,特别...

    php utf-8编码去bom小工具

    它可能通过读取文件,检查开头的字节是否匹配BOM,如果是,则删除这三个字节并重新写入文件。 5. **使用PHP处理BOM**:在PHP中,可以使用`file_get_contents()`函数读取文件内容,然后用`substr()`函数去掉BOM,...

    基于PHP的BOM移除工具.zip

    在PHP中处理BOM移除通常涉及到读取文件内容,检测是否存在BOM,然后将其删除或替换。这个压缩包文件可能包含了一个或多个PHP脚本,这些脚本能够自动化处理这个过程,帮助开发者快速解决由BOM引起的问题,提高代码的...

    [其他类别]PHP除bom小程序_bom.zip

    这个"PHP除bom小程序"可能包括一个或多个PHP脚本,这些脚本读取含有BOM的PHP文件,然后将其删除并保存为新文件。通常,这样的程序会使用文件操作函数,如`file_get_contents()`来读取文件,`str_replace()`或`preg_...

    解决项目中html去除BOM问题

    如果是,则移除BOM并调用`rewrite()`函数重新写入文件。 5. **文件写入**:使用`fwrite()`函数将处理后的文件内容写回原文件。 #### 使用说明 1. **部署脚本**:将上述PHP脚本保存为`clearBOM.php`文件,并放置于...

    去bom头工具

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

    使用php清除bom示例

    标题中的“使用php清除bom示例”是指利用PHP编程语言来检测并移除文件开头的Byte Order Mark(BOM)字符。BOM是UTF-8编码格式的一个特殊标记,通常用于表明文件是以UTF-8编码的。然而,对于某些程序(尤其是Web...

    批量去除PHP文件中bom的PHP代码

    如果检测到BOM并且 `$auto` 设置为1,脚本将自动删除BOM并更新文件。否则,它只会在浏览器中显示BOM存在的信息。 第二个脚本也类似,通过`checkdir()`函数递归地处理目录结构: ```php &lt;?php // 获取GET参数设置...

    用PHP去掉文件头的Unicode签名(BOM)方法

    在提供的内容中,作者分享了一段PHP代码来检测并去除UTF-8编码文件中的BOM。代码的主体是一个checkBOM函数,它读取文件的前三个字节,并检查它们是否等于BOM的字节序列(EF BB BF)。如果是,就从文件内容中删除这前...

    如何使用PHP批量去除文件UTF8 BOM信息

    在使用PHP进行开发过程中,遇到UTF-8编码文件开头带BOM(Byte Order Mark)的情况并不少见。BOM是UTF-8编码的一个特性,它是文件编码格式的标记,用于指示文件是以UTF-8格式编码的。在Windows等平台编辑时,UTF-8...

    PHP中遇到BOM、&lt;feff&gt;编码导致json_decode函数无法解析问题

    3. 编写脚本自动删除BOM:可以在文件被读取或写入之前编写脚本自动检测并删除BOM。例如,在使用SVN版本控制系统时,可以在提交文件之前检查并禁止提交含有BOM的文件。 4. 避免使用会自动添加BOM的编辑器:在Windows...

    deletebom.php

     PHP并不会忽略BOM,所以在读取、包含或者引用这些文件时,会把BOM作为该文件开头正文的一部分。根据嵌入式语言的特点,这串字符将被直接执行(显示)出来。 文件可以批量删除指定路径下文件里的BOM

Global site tag (gtag.js) - Google Analytics