批量去BOM头 遍历目录及子文件,文件夹 PHP源码
任意php文件,把最后一行替换成自己的目录 即可
<?php
class KillBom{ public static $m_Ext = ['txt', 'php', 'js', 'css'];//检查的扩展名 /** * 传入一个任意文件 ,自动区分定义的扩展名,然后过滤bom * @param string $file * @return boolean */ public static function killBomByFile($file) { $ext = pathinfo($file,PATHINFO_EXTENSION);//获取一个文件 的扩展名 if (in_array($ext, self::$m_Ext) and is_file($file))//允许被替换,而且是个文件 (不是目录 ) { $content = file_get_contents($file);//取出文件 详情 if (substr($content, 0, 3) == chr(0xEF) . chr(0xBB) . chr(0xBF))//EFBBBF 检查bom { return file_put_contents($file, substr($content, 3)) > 0;//清除bom并写入文件 } } return false; } /** * 遍历获取子目录 及文件夹 * @param string $dir * @return string[] */ public static function getFileListByDir($dir) { $dir_handle = opendir($dir);//打开文件 $result = [];//存结果 while ($file = readdir($dir_handle))//不断读取目录 { if ($file != '.' and $file != '..')//不是本,上级目录 { $file = $dir . DIRECTORY_SEPARATOR . $file;//组装成文件的绝对路径 if (is_dir($file))//是目录 的话 { $result = array_merge($result , self::getFileListByDir($file));//递归并合并结果 } else { $result[] = $file;//记录结果 } } } return $result;//返回结果 } /** * 清空目录 下所有的bom头文件 * @param string $dir */ public static function killDir($dir) { $files = self::getFileListByDir($dir);//先找到所有文件 foreach ($files as $file)//遍历 { if (!self::killBomByFile($file))//干掉 { echo $file .' -> no bom! <br>'.chr(13);//结果 } else { echo $file . ' -> bom is killed! <br>'.chr(13);//结果 } } }}//把下面这行替换成自己的目录KillBom::killDir('您的目录');批量去BOM头 遍历目录及子文件,文件夹 PHP源码的更多相关文章
- 批量清除BOM头
批量清除BOM头 (2012-03-05 13:28:30) 转载▼ 标签: 杂谈 有些php文件由于不小心保存成了含bom头的格式而导致出现一系列的问题.以下是批量清除bom头的代码,复制代码, ...
- php 批量检测bom头,去除bom头工具
<?php //有些php文件由于不小心保存成了含bom头的格式而导致出现一系列的问题.以下是批量清除bom头的代码 if (isset ( $_GET ['dir'] )) { //confi ...
- C/C++遍历目录下的所有文件(Windows/Linux篇,超详细)
本文可转载,转载请注明出处:http://www.cnblogs.com/collectionne/p/6815924.html. 前面的一篇文章我们讲了用Windows API遍历一个目录下的所有文 ...
- C/C++遍历目录下的所有文件(Windows篇,超详细)
注: 1. 本文讨论的是怎么用Windows API遍历目录下的所有文件.除Windows API,还有一种Windows/Linux通用的方式,使用<io.h>. 2. 本文部分翻译自M ...
- PHP 版去bom头
原理: 找出文件前3个字符 如果它们对应的ASCII 值分别是 239,187,191 则判断为bom头,去掉前3个字符. 代码实现如下: $basedir = isset($_GET['dir'] ...
- PHP 遍历目录下面的所有文件及子文件夹
//遍历文件夹下面所有文件及子文件夹 function read_all_dir ( $dir ){ $result = array(); $handle = opendir($dir);//读资源 ...
- php中隐形字符65279(utf-8的BOM头)问题和fwrite写入文件bom头导致的乱码问题解决
php中隐形字符65279(utf-8的BOM头)问题 今天在CSDN看到一个php输出空白隐形字符65279的问题,在网上找了下,发下这个65279字符是php用来标记文件是utf-8编码的,输出 ...
- Linux编程 2 (遍历目录cd与查看文件和目录ls)
一. 遍历目录 在 linux系统上,可以使用cd切换目录命令. 分二种路径,一是绝对文件路径,另一种是相对文件路径. 1. 绝对文件路径 在虚拟目录中采用文件路径,以虚拟目录根目录开始,相当于 ...
- Java中递归的优缺点,Java写一个递归遍历目录下面的所有文件包括子文件夹里边的文件。
题目: 遍历出aaa文件夹下的文件 首先分析思路: 1.首先判断这个文件夹是否为文件,通过isFile()函数可以判断是否为文件. 2.然后通过isDirectory判断是否为目录. 3.如果是目录就 ...
随机推荐
- 基于Vue.js的大型报告页项目实现过程及问题总结(一)
今年5月份的时候做了一个测评报告项目,需要在网页正常显示的同时且可打印为pdf,当时的技术方案采用jquery+template的方式,因为是固定模板所以并没有考虑报告的模块化区分,九月底产品提出新的 ...
- Python Web框架篇:Django Model基础
model是关于你的数据的单一的,确定的信息来源. 它包含您正在存储的数据的基本字段和行为.Django通过抽象化的模型层(models)为你的网络应用提供对于数据的结构化处理和操作处理,数据库相关的 ...
- MAC - PhpStorm安装调试环境xdebug
今天下午一直在捣鼓如何用PhpStorm进行调试,查找了许多资料,零零碎碎的,所以自己弄篇文章记录一下步骤. 安装xdebug 使用brew安装xdebug,语法如下 brew install hom ...
- Solitaire
Solitaire Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- html的块级元素和内联元素
常用的块级元素: address , center , div , dl ,, form , h1 , h2 , h3 , h4 , h5 , h6 , menu , ol , p , table , ...
- phpstorm php $post数据为空的原因
今天拿PHPstoem 写了个PHP的表单插入数据,然后直接在里面一运行,就一直提示什么未定义,其实是因为$_PSOT[] 取不到值. 后面发现原来是直接用phpstorm 运行PHP的话,他会自带端 ...
- python添加自定义cookies
import cookielib,urllib2 class AddCookieHandler(urllib2.BaseHandler): def __init__(self,cookieValue) ...
- Ajax之路
第一部分: Ajax全称Asynchronous Javascript and XML,中文意思为"异步的Javascript 和XML".Ajax这组技术是web2.0的核心之一 ...
- C# Dapper 轻量ORM调试对SQLServer
Dapper简介 Dapper只有一个代码文件,完全开源,你可以放在项目里的任何位置,来实现数据到对象的ORM操作,体积小速度快. 使用ORM的好处是增.删.改很快,不用自己写sql,因为这都是重复技 ...
- 我在学JavaScript中的循环
for (var num1 = 1;num1 < 10;num1++ ){ for (var num2 = 1;num2< 10;num2++ ){ console.log(num1+'* ...