1. UTF-8编码怎么去掉BOM头
方法一:用Ultraedit或Editplus打开php文件,另存为无Bom的utf-8文件方法二:用Dreamweaver去除Bom头首肆液 菜单雹察–修改–页面属性 或者ctrl+j打开页面属性窗口,点寻标题/编码”去掉“包括Unicode签名者物Bom”前的勾 有Bom的文件太多?这样太麻烦...
2. PHP去除BOM相关
我告源的解决办法是,利用EditPlus打开文件后 另毁友蠢存为 ,然后在下方选择 UTF-8,
所有涉及到的文件都要检查一纤陪下。
3. 什么是Bom头 怎样去除PHP文件的Bom头
方桐漏凳法一:用Ultraedit或Editplus打开PHP文件,另存局旅为无Bom的utf-8文件方法二:用Dreamweaver去除Bom头
菜单–修改–页面属性 或者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);
$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=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);}?还用记事本保存?那你真是智商捉急了!
4. thinkphp echo回的页面如何去掉BOM头
echostr那个只是验证URL的,原样输出就可以了,还有,你可以用编辑器李如去除BOM头信息模迹,不知道你的编辑器是那种的,可否告知,把index.php入口文件的BOM用编辑器清除一下,还望贴出哪码启代码,方面寻找问题所在
5. PHP批量删除、清除UTF-8文件BOM头的代码实例
记得运行代码前先把文件备份一下哦,避免出现失败问题。
代码一:
复制代码
代码如下:
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
found,
automatically
removed.</font>");
}
else
{
return
("<font
color=red>BOM
found.</font>");
}
}
else
return
("BOM
Not
Found.");
}
代码二:
复制代码
代码如下:
<?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<br
/>':'只检测文件BOM不执行去除BOM操作<br
/>';
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).'
<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);
}
?>
6. php读取文件时多了个%ufeff,怎样去掉
这是一个文件BOM头,是用来声明UTF-8的,
做法有两种,
1、那个文件在保存的时候选择UTF-8无BOM,或者一些编辑器做去除BOM处理。
2、就是通过PHP,过滤掉BOM。
7. 如何去掉utf-8的BOM的问题
去掉utf-8的BOM的方法如下:
1、editplus去BOM头的方法
编辑器调整为UTF8编码格和橘神式后,保存伍颂的文件前面会多出一串隐藏的字符(也即是BOM),用于编辑器识唤亏别这个文件是否是以UTF8编码。 运行Editplus,点击工具,选择首选项,选中文件,UTF-8标识选择 总是删除签名,然后对PHP文件编辑和保存后的PHP文件就是不带BOM的了。
2、ultraedit去除bom头办法
打开文件后,另存为选项的编码格式里选择(utf-8 无bom头),确定即可。
3、放在项目根目录,然后运行。
8. thinkphp做的网站怎么删除bom头
使用utraledit 打开对应的文档就可以删除了。
如果你不想歼亏下载编辑器,你可以裤改扒新建一胡昌个文档,然后复制内容到该文档,然后再覆盖一下就行了
9. 如何使用PHP批量去除文件UTF8 BOM信息
使用PHP批量去除文件UTF8 BOM信息的方法是移除特定的utf-8 bom文件头。
1、找到\xef\xbb\xbf后并做移除
2、全部参考代码如下:
<?php//RemovesBOM(Byteordermark)fromfile(ifnecessary)functionbomStrip(path,output){
$bufsize=65536;
$utf8bom="\xef\xbb\xbf";
$inf=fopen(path,r);
$outf=fopen(output,w);
$buf=fread($inf,strlen($utf8bom)); if($buf!=$utf8bom)
{
fwrite($outf,$buf);
} if($buf=="")
{ exit();
} while(true)
{
$buf=fread($inf,$bufsize); if($buf=="")
{ exit();
}
fwrite($outf,$buf);
}
}?>
10. 如何使用PHP批量去除文件UTF8 BOM信息
原理:
UTF8文件,微软为了增加一个识别信息,有了BOM这个东西:BOM —— Byte Order Mark,缺省在Windows等平台上编辑的UTF8文件会在头部增加3个字节的标记信息,我们PHP引擎在处理的时候会完整读取整个PHP代码文档, 如果PHP文件头部包含BOM信息,就会输出一个空白,在很多时候会带来问题,比如我们session无法工作、cookie无法设置等等问题。
解决方法:
把头部BOM的3个字节信息识别出来,然后剔除掉。不过一般情况我们不知道哪个文件有BOM,或者是有很多文件,这个时候,就需要进行批量处理了,下面代码主要就是展现了批量处理的情况,应该会对大家工作中有帮助。
执行方法:
设置一个路径,然后直接执行就行。
复制代码 代码如下:
<?php
// 设定你要清除BOM的根目录(会自动扫描所有子目录和文件)
$HOME = dirname(__FILE__);
// 如果是Windows系统,修改为:$WIN = 1;
$WIN = 0;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>UTF8 BOM 清除器</title>
<style>
body { font-size: 10px; font-family: Arial, Helvetica, sans-serif; background: #FFF; color: #000; }
.FOUND { color: #F30; font-size: 14px; font-weight: bold; }
</style>
</head>
<body>
<?php
$BOMBED = array();
RecursiveFolder($HOME);
echo '<h2>These files had UTF8 BOM, but i cleaned them:</h2><p class="FOUND">';
foreach ($BOMBED as $utf) { echo $utf ."<br />n"; }
echo '</p>';
// 递归扫描
function RecursiveFolder($sHOME) {
global $BOMBED, $WIN;
$win32 = ($WIN == 1) ? "" : "/";
$folder = dir($sHOME);
$foundfolders = array();
while ($file = $folder->read()) {
if($file != "." and $file != "..") {
if(filetype($sHOME . $win32 . $file) == "dir"){
$foundfolders[count($foundfolders)] = $sHOME . $win32 . $file;
} else {
$content = file_get_contents($sHOME . $win32 . $file);
$BOM = SearchBOM($content);
if ($BOM) {
$BOMBED[count($BOMBED)] = $sHOME . $win32 . $file;
// 移出BOM信息
$content = substr($content,3);
// 写回到原始文件
file_put_contents($sHOME . $win32 . $file, $content);
}
}
}
}
$folder->close();
if(count($foundfolders) > 0) {
foreach ($foundfolders as $folder) {
RecursiveFolder($folder, $win32);
}
}
}
// 搜索当前文件是否有BOM
function SearchBOM($string) {
if(substr($string,0,3) == pack("CCC",0xef,0xbb,0xbf)) return true;
return false;
}
?>
</body>
</html>
望采纳。