PHP批量去除BOM头代码分享

        这篇文章主要介绍了PHP批量去除BOM头代码分享,本文直接给出实现代码,代码比较简单,容易看懂,需要的朋友可以参考下

 
 

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

<?php
/**
* 去除bom头信息
*/
header("Content-Type:text/html; charset=utf-8");
 
$auto = 1;
checkdir("D:wampwwwsales");
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);
}
?>

时间: 2024-08-02 06:54:29

PHP批量去除BOM头代码分享的相关文章

PHP批量去除BOM头代码分享_php实例

<?php /** * 去除bom头信息 */ header("Content-Type:text/html; charset=utf-8"); $auto = 1; checkdir("D:\wamp\www\sales"); function checkdir($basedir){ if ($dh = opendir($basedir)) { while (($file = readdir($dh)) !== false) { if ($file != '

PHP批量去除BOM头内容信息代码_php实例

什么是bom头? 在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这也是用记事本编辑utf-8编码后执行就会出错的原因了. 批量去除bom头代码如下所示: <?php if (isset($_GET['dir'])){ //设置文件目录 $basedir=$_GET['dir']; }else{ $basedir = '.'; } $auto = 1; checkdi

PHP去除BOM头的方法

BOM头是UTF-8来告诉编辑器:我是UTF8编码.它的编码是\xEF\xBB\xBF 但是PHP在设计之初并没有考虑到BOM头的问题,所以在编解码的时候很容易出现问题   比如今天遇到的问题,json_decode,当解码的string有BOM头的时候json_decode就解析失败,返回NULL.(为什么不自动检测并去除BOM头呢...小吐槽) 试了两种方式能去除掉:   1 2 3 $result = trim($result, "\xEF\xBB\xBF"); print_r(

php 批量查询搜狗sogou代码分享

  本文给大家分享的是使用php实现批量查询搜狗的实例代码,非常的简单实用,有需要的小伙伴可以参考下. php 批量查询搜狗sogou的rank,非常不错,主要是使用了php的file_get_contents()方法. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <?php date_default_timezone_set('Asia/Shanghai'); header('Content-Type: text/html; cha

Node.js实现批量去除BOM文件头_node.js

之前的同事写了一个工具,但有bug,就是在替换文件后原文件的格式变成utf8 BOM了,这种带BOM的XML在Mac下可能读取不出来,所以就需要写个工具处理一下. 其实思路比较简单,首先遍历目录,然后读取目录,将文件头三个字节去除掉,然后保存为utf-8格式的文件即可,直接上代码吧 :) 复制代码 代码如下: var fs = require('fs'); var path = "目标路径.."; function readDirectory(dirPath) {     if (fs

php 批量查询搜狗sogou代码分享_php实例

php 批量查询搜狗sogou的rank,非常不错,主要是使用了php的file_get_contents()方法. <?php date_default_timezone_set('Asia/Shanghai'); header('Content-Type: text/html; charset=utf-8'); @$txt = file_get_contents("list.txt" ); $arr = explode("\r\n" , trim($txt

PHP批量删除、清除UTF-8文件BOM头的代码实例_php实例

记得运行代码前先把文件备份一下哦,避免出现失败问题. 代码一: 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($char

用python实现的去除win下文本文件头部BOM的代码_python

问题:windows环境下新建或编辑文本文件,保存时会在头部加上BOM.使用ftp上传到linux下,在执行时第一行即报错.以下方法可以去除BOM头,有需要的朋友可以参考下. 复制代码 代码如下: import codecsdata = open("Test.txt").read()if data[:3] == codecs.BOM_UTF8: data = data[3:]print data.decode("utf-8") 说明: 文件开始部为 0xEF 0xB

UTF-8编码怎么去掉BOM头?

Unicode规范中有一个BOM的概念.BOM--Byte Order Mark,就是字节序标记.在这里找到一段关于BOM的说明: 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF.而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中.UCS规范建议我们在传输字节流前,先传输 字符"ZERO WIDTH NO-BREAK SPACE".这样如果接收者收到FEFF,就表明这个字节流是Big-Endia