当前位置: 首页 > 编程笔记 >

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

甄煜
2023-03-14
本文向大家介绍用PHP去掉文件头的Unicode签名(BOM)方法,包括了用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);
}

?>

以上这篇用PHP去掉文件头的Unicode签名(BOM)方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 问题内容: 我在写一些注释过的PHP类,但偶然发现了一个问题。我的名字(用于@author标记)以一个(以UTF-8字符开头,…和一个奇怪的名字,我知道)结尾。 即使我将文件另存为UTF-8,也有一些朋友报告说他们看到这个字符完全弄乱了()。通过添加BOM表签名可以解决此问题。但是那件事让我有些烦恼,因为除了我在Wikipedia上以及关于SO的其他一些类似问题上所了解的之外,我对此并不了解。 我

  • 本文向大家介绍Android Apk去掉签名以及重新签名的方法,包括了Android Apk去掉签名以及重新签名的方法的使用技巧和注意事项,需要的朋友参考一下 Android Apk去掉签名以及重新签名的方法 Android开发中很重要的一部就是用自己的密钥给Apk文件签名,不经过签名的Apk文件一般是无法安装的,就算装了最后也是失败。 网上流传的“勾选允许安装未知来源的应用”其实跟签不签名没啥关

  • 问题内容: 在python中保存文件时如何添加BOM(unicode签名): 我需要将文件转换为。现在,脚本运行良好,但没有BOM。 问题答案: 将其直接写入文件开头:

  • 本文向大家介绍Node.js实现批量去除BOM文件头,包括了Node.js实现批量去除BOM文件头的使用技巧和注意事项,需要的朋友参考一下 之前的同事写了一个工具,但有bug,就是在替换文件后原文件的格式变成utf8 BOM了,这种带BOM的XML在Mac下可能读取不出来,所以就需要写个工具处理一下。 其实思路比较简单,首先遍历目录,然后读取目录,将文件头三个字节去除掉,然后保存为utf-8格式的

  • 本文向大家介绍PHP批量去除BOM头代码分享,包括了PHP批量去除BOM头代码分享的使用技巧和注意事项,需要的朋友参考一下

  • 本文向大家介绍PHP批量去除BOM头内容信息代码,包括了PHP批量去除BOM头内容信息代码的使用技巧和注意事项,需要的朋友参考一下 什么是bom头? 在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这也是用记事本编辑utf-8编码后执行就会出错的原因了。 批量去除bom