批量去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.如果是目录就 ...
随机推荐
- 开发手机APP的神器 --- ionic
前 言 在如今的生活中,手机已经与我们的生活紧紧的联系在了一起.而手机APP更是其中,重要的一环.今天,影子就为大家介绍一种开发手机APP的超级神器---ionic. ioni ...
- 推荐一款不错的反编译软件:Reflector
只需要把要反编译的dll拖放到程序窗口就可以看到code了.是不是很简单,快来试试吧.不只是可以反编译个人写的code,.Net库一样可以查看代码.想学习.Net核心代码的可以试试看.
- Django web框架篇:基础
对于web开发者来说,socket是基础.因为Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 对于真实开发中的python web程序来说,一般会分为两 ...
- 0_Simple__matrixMulCUBLAS
使用CUDA的线性代数库cuBLAS来计算矩阵乘法.这里主要记录调用规则,关于乘法函数中详细的参数说明和调用规则见另一篇随笔. ▶ 源代码: #include <assert.h> #in ...
- Android 开发笔记___SD卡基本操作__图片读取写入
package com.example.alimjan.hello_world.Utils; import android.graphics.Bitmap; import android.graphi ...
- vue初级学习--路由router的编写(resolve的使用)
一.导语 最近在用vue仿写淘宝的商品详情页面以及加入购物车页面,若是成功了,分享给大家~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 二.正文 我先用控制台创建了vue项目demo(如 ...
- Windows 配置 allure report 环境
1:配置Java环境(运行allure 需要) 2:安装powershell 3:安装scoop方法 :运行 powershell 输入 : iex (new-object net.webclient ...
- Android使用百度地图定位并显示手机位置后使用前置摄像头“偷拍”
今天老板让我验证一下技术可行性,记录下来. 需求 :定位手机的位置并在百度地图上显示,得到位置后使用前置摄像头进行抓拍 拿到这个需求后,对于摄像头的使用不太熟悉,于是我先做了定位手机并在百度地图上显示 ...
- linux-mkdir
mkdir mkdir : 可以用来创建目录,如果不加创建路径即在本路径下创建一个新的指定的目录,否则即在给出的路径下创建目录. 目录创建:目录名尽量见名知意,根据不同需要分层创建,尽量避免在同一目录 ...
- 我是如何理解Android的Handler模型_2
对比例程说明,如: 例:在新新线程中替换TextView显示内容. 界面如下,单击按键后original data 替换为 changed data Handler Message部分实现步骤: 1. ...