最近在做一个项目时,出现了一个诡异的问题,就是AJAX从后台获取JSON数据时,怎么都识别不了JSON数据,打开浏览器的开发工具,发现原来是数据中出现了莫名其妙的小红点,如下图:

很明显就是这几个小红点惹的祸,直觉告诉我这几个小红点应该是空格之类的字符,可是接下来我使尽了各种手段,排除了程序中所有可能出现空格的地方,可是小红点依旧,快抓狂了,僵持了一天完全不知道到底是哪儿的问题。在调试中无意间把鼠标放到小红点上面发现居然有提示,此刻实在是太兴奋了,终于看到希望了,提示内容为:\UFEFF,终于找到原因了,原来是这个字符惹的祸,再顺藤摸瓜就简单了,最后在开源中国,找到了一段实用的代码,批量去BOM头:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253<?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
':'只检测文件BOM不执行去除BOM操作
';

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).'
';

}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 (' 找到BOM并已自动去除');

}else{

return (' 找到BOM');

}

}else{

return (' 没有找到BOM');

}

}

function rewrite($filename,$data){

$filenum=fopen($filename,'w');

flock($filenum,LOCK_EX);

fwrite($filenum,$data);

fclose($filenum);

}

?>

原文链接:http://blog.jaekj.com/archives/1469.html

php 去除 ufeff,PHP去掉诡异的BOM \ufeff相关推荐

  1. PHP去掉诡异的BOM \ufeff JSON开头包含红点

    简单的做法,用notepad++ 打开 然后点击 "格式"->以UTF8无DOM模式编码 就OK了 转载于:https://www.cnblogs.com/chear/art ...

  2. 诡异的 BOM 字符 \ufeff

    2019独角兽企业重金招聘Python工程师标准>>> 将一下程序保存后放到服务器,用浏览器访问一次即可.默认扫描脚本所在的目录及子目录,可手动设定基目录,例如 ? dir=./ d ...

  3. utf8 bom 去掉 java_utf-8-BOM删除bom

    utf-8  bom,去除bom //开始 function file_bom($wenjian,$remove = true) { //读取文件,将文件写入字符串 $contents = file_ ...

  4. htmla标签下划线去除_html超链接去掉下划线 html去除取消超链接下划线

    html a超链接标签,默认有的涉猎器表现有下划线,有的不有下划线,大多锚文本超链接A标签内字体是有下划线的,怎么去除超链接下划线?html 超链接去除下划线怎么样做? 去掉去除超链接锚文本的下划线需 ...

  5. 批量添加前缀、去除前缀、去掉重命名之后的括号整理笔记

    事先声明,脚本代码非原创,仅是方便自己随时查找使用. 批量添加前缀: for %%i in (*.*) do ren "%%i" 在此处添加前缀"%%i" 使用 ...

  6. Hive学习(11)hive去除空格或去掉字符串前后或中间的某一字符串

    问题: HIVE中不支持trim(leading).trim(trailing).trim(both) 函数 需求:需要去除字符串中前N位/后N位指定字符 例如:11ABC11 MySQL中可使用以下 ...

  7. php中 怎么去除,php如何去掉链接

    php去掉链接的方法: 1.删除内容中的超链接ereg_replace(']*)>([^','\\2',$content); ereg_replace("]*>|",& ...

  8. java正则表达式去除空格_去掉字符串前后所有空格的正则表达式

    正则表达式,又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符 ...

  9. html表格去除间距,table 去掉 td之间间距

    table { border-collapse: collapse; } title author date CreateTime categories Latex 去掉行号 lindexi 2018 ...

  10. 在线去除.html后缀,去掉网页后缀index.html 帮你提升PR

    昨天,有好几个人问我,网站后面带index.html会不会影响自己的网站?我觉得,少在查询PR值时,domain/和domain/index.htm被认为是两个不同的页面,我的河南站长网刚开始的时候, ...

最新文章

  1. 原创 | 斯坦福Machine Learning with Graphs 学习笔记(第一讲)
  2. mysql基于传统的log_file及log_pos主从复制
  3. git push github SSL报错处理
  4. 【aspnetcore】添加自定义json配置文件
  5. HDU1394(权值线段树)
  6. 编译Ngnix遇到的问题,查看程序依赖的库文件
  7. [CF1137E]Train Car Selection[维护凸壳]
  8. du,df命令和磁盘管理
  9. 3ds max制作宋惠乔的教程----作者: 火星时代 来源: 火星时代
  10. 《Windows游戏编程大师技巧》 四、GDI、控件和突发奇想
  11. .NET实现在Word指定页码之间插入另一个Word
  12. 第二章 基本放大电路
  13. Cisco路由器配置动态路由rip
  14. 2023中国眼博会/护眼仪/CEYEE青少年眼健康产业展览会
  15. APP设计之启动页和广告页
  16. css3 实现图片闪过一道光效果 亲测可用
  17. P1247 取火柴游戏 (博弈论)
  18. 知识图谱评价指标的学习笔记——MAP,MRR
  19. java操作excel的工具
  20. python游戏开发框架_Python游戏开发:数字华容道

热门文章

  1. 判断linux下的网络服务是否正常启动
  2. Microsoft Excel设置单元格下拉框的方法
  3. C语言中 malloc,calloc 和 realloc 函数之间的区别
  4. Kubernetes v1.14.0 之 kube_scheduler 部署
  5. springboot 嵌入式容器
  6. 后台的Activity被系统回收怎么办?
  7. webserver/CGI
  8. Centos挂载iscsi存储
  9. WinAVI FLV Converter v1.0 注册码
  10. php5.4安装教程,centos php 5.4 安装教程