用PHP去掉文件头的Unicode签名(BOM)

<?php

//此文件用于快速测试UTF8编码的文件是不是加了BOM,并可自动移除

//By Bob Shen

$basedir="."; //修改此行为需要检测的目录,点表示当前目录

$auto=1; //是否自动移除发现的BOM信息。1为是,0为否。

//以下不用改动

if ($dh = opendir($basedir)) {

while (($file = readdir($dh)) !== false) {

if ($file!='.' && $file!='..' && !is_dir($basedir."/".$file)) echo "filename: $file ".checkBOM("$basedir/$file")." <br>";

}

closedir($dh);

}

function checkBOM ($filename) {

$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) {
$rest=substr($contents, 3);
rewrite ($filename, $rest);
return true;
}
else return ("BOM Not Found.");
}

function rewrite ($filename, $data) {
$filenum=fopen($filename,"w");
flock($filenum,LOCK_EX);
fwrite($filenum,$data);
fclose($filenum);
}

?>

转载于:https://www.cnblogs.com/linjinzhuang/p/7060540.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/283279.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VMware虚拟机12安装linux系统

http://jingyan.baidu.com/article/4f7d5712d20a1b1a21192760.html 阿里云开源镜像站&#xff1a;http://mirrors.aliyun.com/转载于:https://www.cnblogs.com/liuxinfei/p/6139921.html

本地配置_Hadoop本地模式的安装配置

Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构&#xff0c;它可以使用户在不了解分布式底层细节的情況下开发分布式程序&#xff0c;充分利用集群的威力进行高速运算和存储。从其定义就可以发现&#xff0c;它解決了两大问题&#xff1a;大数据存储、大数据分析。也…

基于 Filter 实现条件路由

基于 filter 实现条件路由Intro在我们的项目有几个测试用的接口&#xff0c;有的接口我们往往不想在生产环境上使用&#xff0c;于是会在代码里判断当前环境是不是生产环境&#xff0c;如果不是生产环境才允许执行&#xff0c;否则就返回一个错误&#xff0c;这样的接口多了之后…

CentOS 6.9通过RPM安装EPEL源(http://dl.fedoraproject.org)

另类的装法&#xff0c;通过RPM包直接安装 wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm && rpm -ivh epel-release-6-8.noarch.rpm 可以发现上面的地址可以找到非6以外的包&#xff08;http://dl.fedoraproject.org&#xff09;

虚拟机防火墙

1.即时生效&#xff0c;重启后失效 开启&#xff1a;service iptables start 关闭&#xff1a;service iptables stop 2 重启后生效 开启&#xff1a;chkconfig iptables on 关闭&#xff1a;chkconfig iptables off 注意&#xff1a;需要用root用户执行此操作转载于:https://w…

ORM框架通过映射(反射)获取数据库的数据

ORM&#xff08;Object Relational Mapping&#xff09;框架采用元数据来描述对象一关系映射细节&#xff0c;元数据一般采用XML格式&#xff0c;并且存放在专门的对象一映射文件中。只要提供了持久化类与表的映射关系&#xff0c;ORM框架在运行时就能参照映射文件的信息&#…

找不到r低版本_R 语言与数据挖掘直播班开始招生,生信分析帮你发高分文章

数据单薄很难支撑文章内容&#xff1f;数据有了不知道怎么处理作出高级的图片&#xff1f;这个时候需要的是生信分析——深度的数据挖掘和分析处理&#xff0c;可以帮助临床医生通过数据处理得到自己想要的信息&#xff0c;更快速地发文章。学习哪种生信分析的工具&#xff1f;…

如何在Jupyter Notebook中使用在anaconda中创建的虚拟环境

如何在Jupyter Notebook中使用在anaconda中创建的虚拟环境 1、创建虚拟环境并激活 conda create -n 虚拟环境名 python 3.8 conda activate 虚拟环境名 2、在虚拟环境中安装ipykernel pip install ipykernel 使用ipykernel生成虚拟环境的kernel python -m ipykernel insta…

BZOJ1823:[JSOI2010]满汉全席——题解

https://www.lydsy.com/JudgeOnline/problem.php?id1823 https://www.luogu.org/problemnew/show/P4171 题面太长啦就不粘过来啦&#xff01; 裸的2-SAT用来练板子的。 显然属于“a和b之间必须选一种”模型&#xff0c;只要a向b连边&#xff0c;b向a连边即可。 &#xff08;被…

读两本敦煌书杂记-敦煌由盛转衰(二)

公元420-589年&#xff0c;中国分为南北两个部分&#xff08;史称魏晋南北朝&#xff0c;由西晋末年八王之乱引起&#xff0c;北方游牧少数民族趁机侵扰中原&#xff0c;并先后建立多个少数民族政权&#xff0c;又称“五胡乱华”。“五胡”主要指匈奴、鲜卑、羯、羌、氐五个胡人…

codevs1079 回家

题目描述 Description现在是晚餐时间,而母牛们在外面分散的牧场中。 农民约翰按响了电铃,所以她们开始向谷仓走去。 你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数据中,总会有且只有一只最快的母牛)。 在挤奶的时候(晚餐前),每只母牛都在她自己的牧场上,一些牧场上可…

什么是xmlschema

XML Schema定义&#xff08;XML Schema Definition,XSD&#xff09;是一套W3C标准,用于基于XML的称为XML Schema的类型系统.用于定义的语言是一种称为XML模式定义语言&#xff08;XML Schema Definition Language&#xff09;的XML语法.Web 服务使用XML作为表示消息和数据的底层…

第三方app_为什么第三方APP不能下载呢?

这些年科学技术发展日新月异&#xff0c;信息技术和网络技术也层出不穷&#xff0c;大众出行工具的汽车电器化集成度越来越高&#xff0c;汽车上娱乐主机的智能化和网络化程度也越来越高&#xff0c;汽车娱乐主机也成了人民除手机外的第二个娱乐工具&#xff0c;用惯了手机娱乐…

如何管理跨部门的沟通与协作?

俗话说“磨刀不误砍柴工”&#xff0c;选对方法&#xff0c;再复杂的事也能事半功倍。在新营销时代&#xff0c;效率为王&#xff0c;而高效率的背后&#xff0c;则是给力的技术工具与合理的工作方式。 企业级服务的兴起&#xff0c;让人们看到了信息化技术的潜力&#xff0c;从…

启动Jupyter Notebook时出现Kernel error错误的解决方法

启动Jupyter Notebook时出现Kernel error错误的解决方法 方法如下&#xff1b; 1、打开Anaconda Prompt&#xff0c;然后输入jupyter kernelspec list,查看一下 2、打开anaconda的安装目录找到E:\Anaconda3\anaconda3\share\jupyter\kernels\python3下面的kernel.json&#x…

WPF效果第一百九十七篇之Path范围内拖拽

前面效果中分享了彩色马蹄图的效果;这不今天再次在马蹄图的基础上,实现只能在Path内的拖拽效果;闲话不多扯直接看效果:1、关于拖拽顶点实现色域范围选择,参考:https://www.codeproject.com/Tips/828310/The-simplest-WPF-diagram-designer-part2、通过Blend绘制了色度图中间区域…

Ubuntu16.04 + caffe-ssd + [CPU_ONLY] + KITTI 训练总结

本次训练主要参考&#xff1a;http://blog.csdn.net/jesse_mx/article/details/65634482 感谢 Jesse_Mx &#xff0c;帮助了我很多。 坑一【openCV未安装成功】&#xff1a; openCV未安装成功会导致各种莫名的问题&#xff0c;比如&#xff1a;“No module named cv2”问题。 然…

PHP面向对象常见的关键字和魔术方法

在PHP5的面向对象程序设计中提供了一些常见的关键字&#xff0c;用来修饰类、成员属性或成员方法&#xff0c;使他们具有特定的功能&#xff0c;例如final、static、const等关键字。还有一些比较实用的魔术方法&#xff0c;用来提高类或对象的应用能力&#xff0c;例如__call()…

python中字典长度可变吗_Python:如何给字典分配一个长度可变的列表值?

我试图在100个2D numpy数组中定位质心&#xff0c;如下所示&#xff1a;array([[ 0.216, 0.24 , 0.244, ..., 0.679, 0.684, 0.707],[ 0.23 , 0.229, 0.238, ..., 0.675, 0.676, 0.695],[ 0.221, 0.238, 0.24 , ..., 0.669, 0.677, 0.684],...,[ 0.937, 0.925, 0.923, ..., 0.7…

如何在论文中自动生成标准的参考文献格式

首先下载EndNote软件&#xff0c;word中会自动显示EndNote选项 选择EndNote 选择导出会下载一个txt文件 打开EndNote中向下的箭头导入&#xff08;从文件导入文献到库中&#xff09;找到刚才下载的txt文件 点击选择按键找到txt文件 选择打开即可 选择导入 选择导入的内容…