PHP批量去除文件BOM头】的更多相关文章

auto 是否自动替换 默认否 dir 检查目录 默认./ display 是否显示所有文件 默认只显示有bom头的文件 <?php empty($_GET['auto']) && $_GET['auto'] = 0; empty($_GET['dir']) && $_GET['dir'] = './'; empty($_GET['display']) && $_GET['display'] = 0; $basedir = $_GET['dir'];…
有时候在ajax返回的json数据前多出一些不明的字符,就是所谓的bom头,导致javascript解析json格式失败,下面贴出一段PHP代码实现检测和去除bom头. <?php header('content-Type: text/html; charset=utf-8'); if (isset($_GET['dir'])) { //设置文件目录,如果没有设置,则自动设置为当前文件所在目录 $basedir = $_GET['dir']; } else { $basedir = '.'; }…
<?php /** * 用法:复制以下代码至新建的php文件中,将该php文件放置项目目录,运行即可.代码来源于网络. * chenwei 注. */ header('content-Type: text/html; charset=utf-8'); $auto=1;/* 设置为1标示检测BOM并去除,设置为0标示只进行BOM检测,不去除 */ $basedir='.'; $loop=true; echo '当前查找的目录为:'.$basedir.'当前的设置是:'; echo '(1)',$l…
<?php 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 != '.' &&…
bat批量去除文件首行 set n=1 :starline for %%j in (*.txt) do ( :3 if exist D:\work\test\new_%n%.txt (set /a n+=1&goto 3) set file=%n%.txt for /f "skip=1 delims=" %%i in ('type "%file%"') do ( echo %%i >>D:\work\test\new_%n%.txt ) set…
 php中隐形字符65279(utf-8的BOM头)问题 今天在CSDN看到一个php输出空白隐形字符65279的问题,在网上找了下,发下这个65279字符是php用来标记文件是utf-8编码的,输出的时候会一起输出到客户端,导致客户端如果使用ajax得到返回值时,无法匹配字符串.php隐形字符65279解释如下:UTF-8 编码的文件可以分为无 BOM 和 BOM 两种格式.何谓BOM? "EF BB BF" 这三个字节就叫BOM,全称是"Byte Order Mard&q…
<?php class KillBom{ //定义扩展名 public static $m_ext = ['txt','php','js','css']; /** * 传入一个任意文件,自动区分定义的扩展名,然后过滤 * @param string $file * @return boolean */ public static function killBomByFile($file) { //获取一个文件的扩展名 $ext = pathinfo($file,PATHINFO_EXTENSIO…
什么是 BOM? BOM 全称是 Byte Order Mark,意思是字节顺序标记.常用来当作标示文件是以 UTF-8.UTF-16 或者 UTF-32 编码的标记. 去除 BOM 头方法 vim 键入 :set nobomb,并回车. notepad++ [格式]-[以 UTF-8 无 BOM 格式编码],并保存.…
有时候我们的文件可能不需要BOM头,例如:我们公司的SVN服务器提供的代码都UTF8编码保存(不能有BOM头)否则代码提交不上去. 文件很多的时候就需要批量操作. 脚本使用方法:remove-bom.sh filePath|dirPath 参数可传文件路径或目录路径.具体代码如下: #!/usr/bin/env bash # @author frank # @email frank@mondol.info # @created 2016-09-01 # # Usage: remove-bom.s…
做php开发,经常部分uft8的php文件因BOM头不同导致各种错误和错位.网上搜到的大部分所谓的去处bom工具都是2货,没有能用的.下面的一段代码,请复制到一个php文件里,然后上传到你的网站根目录下,然后前台访问,他会自动将站点下所有目录及子目录里的各种文件的bom干掉,会自动判断的哟. <?php // 设定你要清除BOM的根目录(会自动扫描所有子目录和文件)$HOME = dirname(__FILE__);// 如果是Windows系统,修改为:$WIN = 1;$WIN = 0;?>…
最近导出文件遇到fwrite导出乱码,而且中英文都乱码,很费解.折腾了一番之后终于找到问题所在了,mark下. UTF-8 BOM 又叫 UTF-8 签名,其实 UTF-8 的 BOM 对 UFT-8 没有作用,是为了支援 UTF-16,UTF-32 才加上的 BOM ,BOM 签名的意思就是告诉弱编辑器(记事本)当前文件采用何种编码,方便编辑器识别. PHP 在设计之初,没有考虑到 BOM 头的问题,因此很容易因为 BOM 头引发诡异的问题,比如编码转换失败,样式错乱等等问题,而且此问题相当隐…
背景: java普通的文件读取方式对于bom是无法正常识别的. 使用普通的InputStreamReader,如果采用的编码正确,那么可以获得正确的字符,但bom仍然附带在结果中,很容易导致数据处理出错.另外,对于存在BOM头的文件,无法猜测它使用的编码. 目标: 实现一种方式,可对BOM头进行捕捉和过滤 解决方案有二: 一.  使用apache的工具类,以BOMStream为例: BOMStream,api参考:http://commons.apache.org/io/apidocs/org/…
需求是读取一个csv文件,然后解析成对应的数据结构.csv必须包含指定的某些列,通过列名header来进行校验. 解析配置文件的方法. public List<QuestionData> buildConfigData(final MultipartFile file) { CsvReader csvReader = null; List<QuestionData> questionDataList; try (DataInputStream inputStream = new D…
<?php //有些php文件由于不小心保存成了含bom头的格式而导致出现一系列的问题.以下是批量清除bom头的代码 if (isset ( $_GET ['dir'] )) { //config the basedir $basedir = $_GET ['dir']; } else { $basedir = '.'; } $basedir="."; //默认可以是当前的文件夹 $auto = 1; checkdir ( $basedir ); function checkdi…
开发中会遇到BOM头, 导致程序无法执行. 浏览器返回接口如下图: 去除BOM头解决方法:<?phpini_set('memory_limit','1024M'); function checkdir($basedir) {        if ($dh = opendir ( $basedir )) {            while ( ($file = readdir ( $dh )) !== false ) {                if ($file != '.' &&a…
任意php文件,把最后一行替换成自己的目录 即可 <?php class KillBom {     public static $m_Ext = ['txt', 'php', 'js', 'css'];//检查的扩展名     /**      * 传入一个任意文件 ,自动区分定义的扩展名,然后过滤bom      * @param string $file      * @return boolean      */     public static  function killBomBy…
在 aitecms 群里有网友抱怨了好几天说本地的验证码一直无法显示,后来听说解决了,问其如何解决的,说是去除了文件 bom 就好了.后来百度到一篇文章也说 dedecms 的验证码不能显示,某次解决了文件 bom 后竟然好了,于是本篇文章就显得很重要了. 网上转载的,出处已经不可考了,不知道原作者是谁,在这里先向作者表示感谢. 代码如下:…
批量清除BOM头 (2012-03-05 13:28:30) 转载▼ 标签: 杂谈   有些php文件由于不小心保存成了含bom头的格式而导致出现一系列的问题.以下是批量清除bom头的代码,复制代码,保存成.php文件,放在想执行的文件夹,运行就可以了 <?php if (isset ( $_GET ['dir'] )) { //config the basedir $basedir = $_GET ['dir']; } else { $basedir = '.'; } $auto = 1; c…
<?php //有些php文件由于不小心保存成了含bom头的格式而导致出现一系列的问题.以下是批量清除bom头的代码 if (isset ( $_GET ['dir'] )) { //config the basedir $basedir = $_GET ['dir']; } else { $basedir = '.'; } $basedir="."; //默认可以是当前的文件夹 $auto = 1; checkdir ( $basedir ); function checkdi…
将下面文件放在网站根目录访问即可,它会遍历当前目录下所有子目录,检测文件是否含有BOM头,并删除BOM头 <?php //remove the utf-8 boms //by magicbug at gmail dot com set_time_limit(0); if (isset($_GET['dir'])){ //config the basedir $basedir=$_GET['dir']; }else{ $basedir = '.'; } $auto = 1; checkdir($b…
teleport pro tppabs标签批量删除 teleport pro tppabs标签批量删除 使 用Teleport Pro下载的网页代码中包含了很多垃圾代码,比如下载的html网页代码中会出现tppabs标签,而且还会将所有的href标签中加入了很多垃圾代码, 在css会加入了tpa标签,这些都是冗余代码,可以将其全部删除,但是由于代码太多,我们不可能一个个删除,因此可以使用Dreamweaver的查找 /替换工具中的正则表达式来进行替换.1.替换tppabs标签,使用Dreamwe…
查找包含BOM头的文件,命令如下:   grep -r -I -l $'^\xEF\xBB\xBF' ./   这条命令会查找当前目录及子目录下所有包含BOM头的文件,并把文件名在屏幕上输出.   但是,删除BOM头,网上找到的命令大多不能用,比较常见的命令是:   grep -r -I -l $'^\xEF\xBB\xBF' /path | xargs sed -i 's/^\xEF\xBB\xBF//;q' 但这条命令会把除了首行之外所有的行删除,所以毫无意义.   经测试如下命令是可行的:…
BOM头是UTF-8来告诉编辑器:我是UTF8编码.它的编码是\xEF\xBB\xBF 但是PHP在设计之初并没有考虑到BOM头的问题,所以在编解码的时候很容易出现问题   比如今天遇到的问题,json_decode,当解码的string有BOM头的时候json_decode就解析失败,返回NULL.(为什么不自动检测并去除BOM头呢...小吐槽) 试了两种方式能去除掉:   $result = trim($result, "\xEF\xBB\xBF"); print_r(json_d…
Linux下查找包含BOM头的文件和清除BOM头命令 2014-08-16 12:30:50 分类: 系统运维 查找包含BOM头的文件,命令如下: 点击(此处)折叠或打开 grep -r -I -l $'^\xEF\xBB\xBF' ./ \xef\xbb\xbf是UTF8 BOM的16进制表示   这个命令会把当前目录及所有子目录下的BOM头删除掉. 点击(此处)折叠或打开 find . -type f -exec sed -i 's/\xEF\xBB\xBF//' {} \; 另一种方法:…
首先弄清楚,什么是bom头?在Windows下用记事本之类的程序将文本文件保存为UTF-8格式时,记事本会在文件头前面加上几个不可见的字符(EF BB BF),就是所谓的BOM(Byte order Mark).不仅限于 记事本保存的文件,只要在文件的开口包含了EF BB BF 几个不可见的字符(十六进制应该是是xEFxBBxBF,用二进制编辑文件可见).这像是一个约定俗成的东西,当系统看到这玩意的时候,就会觉得你这个文件是UTF-8编码的. 如果你的接口是UTF-8的,你需要强制下载一个文件,…
今天在做一个文件上传的项目中碰到了一个十分奇怪的问题,在解析上传上来的csv文件时,总是在解析第一行的第一个标题字段时出错,就是第一个那个字段总是和对应的model字段对应不上,这个坑是真的很深,找了半天,发现原来utf8编码格式的文件可能会有BOM头这玩意儿! 我们先来看看什么是BOM头: 在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码. 现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这也是用记事本编辑utf-…
事出有因,之所以要截取特定字节,是为了给utf-8编码的文件去掉bom头. bom头好去啊,notepad++文本编辑器中就有这个功能啊.可是,问题所在是要编辑的文件太大了,300MB,小电脑卡shi. 所以,从linux 找能解决问题的命令.去bom头嘛,去掉文件的前三个字节就好了. 所以可以使用dd命令: 命令示例如下: dd if=s.txt of=t.txt bs=4M skip=3 iflag=skip_bytes 设置bs参数是为了效率,设置iflag 参数是为了说明skip 指定的…
BOM的基本概念 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF.而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中.UCS规范建议我们在传输字节流前,先传输字符"ZERO WIDTH NO-BREAK SPACE".这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的:如果收到FFFE,就表明这个字节流是Little-Endian的.因此字符"ZERO WIDTH N…
package com.xxx.xxx.dao; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.sql.Connection; import java.sql.DriverManager; imp…
1.查找bom头文件 grep -r -I -l $'^\xEF\xBB\xBF' ./ 2.替换bom头文件 find . -type f -exec sed -i 's/\xEF\xBB\xBF//' {} \;…