Php引用文件引起的空白行问题(UTF-8)

引用文件指的是include、require_once引用其它文件引起的空白行

这其实是你用记事本编辑UTF-8文件以后,虽然你还是保存为UTF-8格式,但系统会自动给文件加两个bom标记,但是ie只能忽略一个,另一个就是空白行了。
解决办法就是:

不要用记事本去编辑UTF-8文件,要用其它工具,比Dreamw、EmEditor 、Visual Studio 2008等编辑工具编辑UTF-8文件后保存。

我的两个站用记事本编辑后顶部就有空白行,起初以为是css设置问题,结果是bom标记引起的。

还有一种办法,如果你是大量文件都这样我们可使用一个php函数来搞定

把以下代码复制到一个PHP文件里面,然后放在需要清除BOM头的目录一下运行,就可以批量把PHP空白的首行清除掉,太给力了。

 代码如下 复制代码

 
<?php  
if (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")." <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 found, automatically removed.</font>");  
  } else {  
   return ("<font color=red>BOM found.</font>");  
  }  
}  
else return ("BOM Not Found.");  
}  
function rewrite ($filename, $data) {  
$filenum = fopen($filename, "w");  
flock($filenum, LOCK_EX);  
fwrite($filenum, $data);  
fclose($filenum);  
}  
?>

时间: 2024-10-01 22:25:58

Php引用文件引起的空白行问题(UTF-8)的相关文章

引用文件

  1. PHP 在 HTML 中的几种标识.注释 如何在HTML中区分出那些是我们需要的PHP程序呢?,PHP为此提供了四种方法: 1.1.用 <?.....?> ,如:<? echo "I made it!"; ?> 1.2.用 <?php......?>, 如:<?php phpinfo(); ?> 1.3.例:<script language="php"> echo "Good Luck!

水晶报表打印单据时增加空行或空白行的示例脚本

报表打印|脚本|示例|水晶报表 假设我们的单据每张共打印五行,则最多会增加空白行4行,在重复出现的表体中定义四个空白节.我们首要的任务是根据记录数来确定这四个节什么时候显示,什么时候不显示.我们定义的节的抑制显示脚本为:节1,只有当记录数等于1时才需要显示第一个空白节.if onlastrecord=false then FORMULA = TRUEelse if (COUNT({销售单表体.商品代码}) mod 5 > 1) then FORMULA = TRUEelse if (COUNT(

jsp中如何去除JSTL标签库“include, taglib”等留下的空白行

在做项目的时候,经常会使用到JSTL和EL表达式,有时我们需要看下页面生成的源代码,但是当jsp中充满了jstl的各种标签,页面就会存在很多的空白部分,有时太多了会让浏览器假死掉,这是我们就想要去掉这些空白的部分了.去掉的方法很多,下面一一列举出来. 我的开发及服务器环境:Windows7 + Eclipse2014 + Tomcat7.0 + JDK 1.7.0 经过多番测试,可用的方法有: 1.在每个JSP的头上加上一段代码   <%@ page trimDirectiveWhitespac

Excel工作表中隔行插入空白行的方法

  Excel工作表中隔行插入空白行的方法         1.在工作表的数据区域外的一个列的开始单元格中输入数字"1"和"2",如图1所示.同时选择这2个单元格,将鼠标指针放置到选框右下角,当鼠标指针变为十字光标形状时,拖动鼠标向该列的其他单元格中填充数据,如图2所示. 图1 输入数据 图2 填充数据 2.在该列接下来的2个单元格中分别输入数字"1.2"和"2.2",如图3所示.然后使用和步骤(1)相同的方法向下填充数据,如

Excel怎么快速删除工作表中空白行

  Excel怎么快速删除工作表中空白行          1.启动Excel 2013并打开工作表,这张工作表中存在一些空行.在工作表中选择数据区域,在"开始"选项卡的"编辑"组中单击"排序和筛选"按钮,在打开的下拉列表中选择"筛选"选项,如图1所示. 图1 选择"筛选"选项 2.此时,数据表的列标题右侧将会出现筛选下三角按钮,单击任意一个下三角按钮,在打开的下拉列表中取消对"全选"复

wps表格如何实现隔行输入空白行效果

  wps表格实现隔行输入空白行效果的方法 1.首先我们要知道第一个空白行插入在哪个位置,本例中在如图位置插入空白行 2.那么我们要在要插入第一个空白行的下一个单元格输入任意字符. 3.再在其对角位置单元格添加任意一个字符. 4.选择这两个单元格,如图所示,向下自动填充数据. 5.选择刚刚填充的数据,CTRL+G打开定位对话框,在定位条件中选择"空值" 6.这个时候我们可以看如图所示的选择效果. 7.在"开始"选项卡中选择"插入"下的"

wps表格的空白行怎样删除

  删除wps表格的空白行的方法: 首先,选中整个表格 再点击开始,会出现一个功能区,找到查找,如下图 点击查找右下角的一个倒小三角,会出现定位,如下图 点击定位,会弹出一个对话框,再勾选"空值",再点击定位,这时表格的空白处会变成后面这一张图的样式, 单击右键会出现又一对话框,选择删除,这时会弹出一对话框,选择整一行,再单击确定. 最后结果如下,这样就好了.

如何删除wps表格的空白行

  删除wps表格的空白行的方法: 首先,选中整个表格 再点击开始,会出现一个功能区,找到查找,如下图 点击查找右下角的一个倒小三角,会出现定位,如下图 点击定位,会弹出一个对话框,再勾选"空值",再点击定位,这时表格的空白处会变成后面这一张图的样式, 单击右键会出现又一对话框,选择删除,这时会弹出一对话框,选择整一行,再单击确定. 最后结果如下,这样就好了.

快速删除WPS表格2013中的空白行

  ①启动WPS表格,复制A1:D1单元格. ②将复制的内容粘贴到另外的单元格中,并在没一个单元格下面输入一个=号. ③单击数据--筛选--高级筛选. ④列表区域选择A1:D10单元格,条件区域选择F1:I2. ⑤这样就将1-10行中的空白行选取出来了,我们选中这些行,删除即可.