2019独角兽企业重金招聘Python工程师标准>>>

将一下程序保存后放到服务器,用浏览器访问一次即可。默认扫描脚本所在的目录及子目录,可手动设定基目录,例如 ?

dir=./

dir=./../

dir=./../test

<?php
header('content-Type: text/html; charset=utf-8');if (isset($_GET['dir'])) {//设置文件目录,如果没有设置,则自动设置为当前文件所在目录$basedir = $_GET['dir'];
} else {$basedir = '.';
}$auto = 1; /*设置为1标示检测BOM并去除,设置为0标示只进行BOM检测,不去除*/echo '当前查找的目录为:' . $basedir . '当前的设置是:';
echo $auto ? '检测文件BOM同时去除检测到BOM文件的BOM<br />' : '只检测文件BOM不执行去除BOM操作<br />';checkdir($basedir);function checkdir($basedir)
{if ($dh = opendir($basedir)) {while (($file = readdir($dh)) !== false) {if ($file != '.' && $file != '..') {if (!is_dir($basedir . '/' . $file)) {echo '文件: ' . $basedir . '/' . $file . checkBOM($basedir . '/' . $file) . ' <br>';} else {$dirname = $basedir . '/' . $file;checkdir($dirname);}}}closedir($dh);}
}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并已自动去除</font>');} else {return ('<font color=red>找到BOM</font>');}} else {return ('没有找到BOM');}
}function rewrite($filename, $data)
{$filenum = fopen($filename, 'w');flock($filenum, LOCK_EX);fwrite($filenum, $data);fclose($filenum);
}

转载于:https://my.oschina.net/sallency/blog/1819168

诡异的 BOM 字符 \ufeff相关推荐

  1. com/alipay/config/AlipayConfig.java:[1,1] 非法字符: '\ufeff'

    最近做java支付,发件将支付宝平台提供的demo放到项目中编译,出现下面的错误: [ERROR] Failed to execute goal org.apache.maven.plugins:ma ...

  2. Android --- Android Studio 错误: 非法字符: ‘\ufeff’

    原因: Eclipse可以智能的把UTF-8+BOM文件转为普通的UTF-8文件,Android Studio还没有这个功能,所以使用Android Studio编译UTF-8+BOM编码的文件时会出 ...

  3. android 非法字符 \ufeff错误

    android studio导入项目老是会报错,我自己也是遇到一个就去网上搜索资料解决一个.昨天,自己导入海康的sdk Demo看看效果时,发现android studio报  非法字符 \ufe ...

  4. android非法字符 ufeff,Java-在Android Studi上编译时出现错误(1,1)非法字符'\ ufeff'...

    Java-在Android Studi上编译时出现错误(1,1)非法字符'\ ufeff' 我得到了一个Eclipse项目源代码(有人告诉我在Android Studio上,也许他们只是感到困惑),然 ...

  5. Error:(1, 1) java: 非法字符: ‘\ufeff’

    原文链接:https://www.cnblogs.com/diffx/p/10000123.html 一.问题 用IDEA打开eclipse java项目编译时,出现以下错误: Error:(1, 1 ...

  6. IDEA启动项目报错:非法字符: ‘\ufeff‘

    Error:(1, 1) java: 非法字符: '\ufeff' Error:(1, 10) java: 需要class, interface或enum 解决 单文件设置:IDEA右下角将编码改为G ...

  7. java: 非法字符: ‘\ufeff‘解决方法

    出现问题:在使用idea时候会出现java: 非法字符: '\ufeff'这样的情况 原因:出现这样的问题来源于这个BOM,一般在编写时候会给你默认添加这样的一个BOM头,是隐藏起来的,编译时候会给出 ...

  8. IDEA 编译gong'chenError:(1, 1) 错误: 非法字符: '\ufeff'

    使用IDEA 编译android 工程的时候报错 为了弘扬与时俱进的精神,也是跟随google 老大android 开发的规范现在把工程从eclipse 上切换到IDEA 或者Android stud ...

  9. 非法字符: '\ufeff' 解决方案(Android Studio)

    为了顺应天下大势,决定将公司项目从Eclipse导入到Android Studio中,导入之后编译时出现非法字符: '\ufeff' 错误,造成无法编译. 问题所在:隐蔽字符BOM的问题 解决方案: ...

最新文章

  1. [转]redis的三种启动方式
  2. HEXA机器人荣获CES Asia2018 创新奖
  3. mac cad石材填充图案_CAD电视背景墙画法步骤
  4. 给matrix重新列名_如何认真升级Mac终端(甚至给它一个Matrix主题)
  5. css划上去变长,Css3如何实现鼠标移上变长特效?(图文+视频)
  6. Nginx 过滤模块
  7. 【mysql】MySQL存储IP地址
  8. Thread+Handler 线程 消息循环(转载)
  9. 完美卸载IE8/IE7安装IE6
  10. Android 笔记 json GSON,Android中使用Gson解析JSON数据
  11. 51822 proximity
  12. html页面发送微信朋友圈,【源码分享】分享一个基于官方share.html简化的分享js代码(微信,朋友圈,QQ)...
  13. QWidget相对坐标转全局坐标
  14. NTKO 文档控件问题总结
  15. Clion源码编辑器的学习与实践
  16. Unix/Linux编程:POSIX时钟
  17. 快速了解 Java 线上问题快速诊断神器 Arthas
  18. 中国软件业失望与希望
  19. kali初讲——Metasploit工具MSF初学
  20. 生命的意義在你的内心

热门文章

  1. 什么是SQL Server DATEPART()方法?
  2. jpa 表注释和字段注释_JPA注释–Hibernate注释
  3. 使用Kotlin的Android CoordinatorLayout
  4. 短短几分钟快速带你掌握C语言指南针!
  5. Arrays.copyOf()方法详解-jdk1.8
  6. Hive中文件存储格式及大小比较测试
  7. Gartner 发布2017 年商业智能和分析平台魔力象限 Tableau 获“领先者”
  8. Xcode 插件失效的临时解决方案
  9. 【归并排序+递归】LeetCode 148. Sort List
  10. 【重点 递归构造二叉树】LeetCode 95. Unique Binary Search Trees II