去掉bom头的办法,简单的是下面两种:
①.、editplus去BOM头的方法
记得运行代码前先把文件备份一下哦,避免出现失败问题.
代码一:
复制代码
代码如下:
function
checkBOM
($filename)
{
global
$auto;
$contents
=
file_get_contents($filename);
$charset[1]
substr($contents,
0,
①.);
if
(ord($charset[1])
==
($auto
$rest
rewrite
($filename,
$rest);
return
("font
color=redBOM
found,
automatically
removed./font");
}
else
found./font");
("BOM
Not
Found.");
代码二:
php
header('content-Type:
text/html;
if(isset($_GET['dir'])){
//设置文件目录,如果没有设置,则自动设置为当前文件所在目录
$basedir=$_GET['dir'];
}else{
$basedir='.';
$auto=1;/*设置为1标示检测BOM并去除,设置为0标示只进行BOM检测,不去除*/
echo
'当前查找的目录为:'.$basedir.'当前的设置是:';
$auto?'检测文件BOM同时去除检测到BOM文件的BOMbr
/':'只检测文件BOM不执行去除BOM操作br
/';
checkdir($basedir);
checkdir($basedir){
if($dh=opendir($basedir)){
while
(($file=readdir($dh))
!==
false){
if($file
!=
'.'
$file
'..'){
if(!is_dir($basedir.'/'.$file)){
'文件:
'.$basedir.'/'.$file
.checkBOM($basedir.'/'.$file).'
br';
$dirname=$basedir.'/'.$file;
checkdir($dirname);
closedir($dh);
checkBOM($filename){
$contents=file_get_contents($filename);
$charset[1]=substr($contents,0,1);
if($auto==1){
rewrite($filename,$rest);
('
font
color=red找到BOM并已自动去除/font');
color=red找到BOM/font');
没有找到BOM');
rewrite($filename,$data){
$filenum=fopen($filename,'w');
flock($filenum,LOCK_EX);
fwrite($filenum,$data);
fclose($filenum);
菜单–修改–页面属性 或者ctrl◆j打开页面属性窗口,点选"标题/编码"去掉"包括Unicode签名Bom"前的勾
有Bom的文件太多?这样太麻烦?当然有更好的方法!方法三:用php文件批量去除bom头 将以下这段代码保存为php文件,上传到服务器,用浏览器访问它!?phpif (isset($_GET['dir'])){ //设置文件目录
$basedir=$_GET['dir'];}else{$basedir = '.';}$auto = 1;checkdir($basedir);
function checkdir($basedir){
if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file != '.' $file != '..'){
if (!is_dir($basedir./.$file)) {
echo filename: $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);
if ($auto == 1) {
rewrite ($filename, $rest);
return (font color=redBOM found, automatically removed./font);} else {return (font color=redBOM found./font);}}else return (BOM Not Found.);}function rewrite ($filename, $data) {
$filenum = fopen($filename, w);
flock($filenum, LOCK_EX);
fclose($filenum);}?还用记事本保存?那你真是智商捉急了!
原理:
解决方法:
执行方法:
设置一个路径,然后直接执行就行.
复制代码 代码如下:
// 设定你要清除BOM的根目录(会自动扫描所有子目录和文件)
$HOME = dirname(__FILE__);
// 如果是Windows系统,修改为:$WIN = 1;
$WIN = 0;
html xmlns=""
head
style
body { font-size: 10px; font-family: Arial, Helvetica, sans-serif; background: #FFF; color: #000; }
/style
/head
body
$BOMBED = array();
RecursiveFolder($HOME);
foreach ($BOMBED as $utf) { echo $utf ."br /n"; }
echo '/p';
// 递归扫描
function RecursiveFolder($sHOME) {
global $BOMBED, $WIN;
$folder = dir($sHOME);
$foundfolders = array();
while ($file = $folder-read()) {
if($file != "." and $file != "..") {
} else {
$BOM = SearchBOM($content);
if ($BOM) {
// 移出BOM信息
// 写回到原始文件
$folder-close();
if(count($foundfolders) 0) {
foreach ($foundfolders as $folder) {
// 搜索当前文件是否有BOM
function SearchBOM($string) {
return false;
/body
/html
望采纳.
function?checkBOM?($filename)?{
global?$auto;
$contents?=?file_get_contents($filename);
$charset[1]?=?substr($contents,?0,?1);
if?($auto?==?1)?{
rewrite?($filename,?$rest);
return?("font?color=redBOM?found,?automatically?removed./font");
}?else?{
return?("font?color=redBOM?found./font");
else?return?("BOM?Not?Found.");
if(isset($_GET['dir'])){?//设置文件目录,如果没有设置,则自动设置为当前文件所在目录
echo?'当前查找的目录为:'.$basedir.'当前的设置是:';
echo?$auto?'检测文件BOM同时去除检测到BOM文件的BOMbr?/':'只检测文件BOM不执行去除BOM操作br?/';
function?checkdir($basedir){
while?(($file=readdir($dh))?!==?false){
if($file?!=?'.'?$file?!=?'..'){
echo?'文件:?'.$basedir.'/'.$file?.checkBOM($basedir.'/'.$file).'?br';
function?checkBOM($filename){
return?('?font?color=red找到BOM并已自动去除/font');
return?('?font?color=red找到BOM/font');
return?('?没有找到BOM');
function?rewrite($filename,$data){
以上就是土嘎嘎小编为大家整理的php批量去除文件bom头的简单介绍php批量去除文件bom头的简单介绍相关咨询咨询主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!