日期:2014-05-17  浏览次数:20647 次

PHP源码Include出现异样空格导致CSS间隔问题【转载】

? ? ? 网页设计中界面比较重要,如果CSS变形,哪用户体验的效果将会很不爽。像今天品界就遇到这样的事,PHP源码里会产生一个空格,导致网站变形。我把代码里的空格,一些没必要的代码删除了也还是不行。个人感觉也不应该是编码的问题,因为没有乱码,真的是TMD的奇怪了。PHP代码如下:

    include("conn.php");
    include("includes/cls_function.php");
    if(empty($_SESSION['boke_uid'])){
        echo "<script language=\"javascript\">alert(\"请会员登录后继续操作!\");location.href=\"index.php\";</script>";    exit;
    }
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
? ?
? ? ? 在网上GOOGLE&百度一下,解决方法以下:
? ? ? 有些时候我们在PHP编程的时候,写HTML DOM CSS开发,会遇到这样的问题,明明两个DIV标记之间没有空格存在,但是浏览页面的时候却多出一块异样的空格,导致两个DIV之间的间隔产生问题。这个问题通常出现在使用PHP的Include函数包含不同的页面时候出现。我们在 Firefox的FireBug或者IE Developer Tools中可以看到有一个异样的空格存在,产生这种情况以下种原因:

1.所包含的PHP文件的编码不一致
? ? ? 比如以上的例子为File1.php的代码,文件编码为UTF-8,而v1_page1.php则使用了GB2312编码,这个时候出现文件编码不一致,就会出现异样空格或文字。解决方法是文件编码设置一致。

2.HTML编码和文件编码不一致
? ? ? 众所周知,编码有分文件编码和HTML编码,而文件编码必须和HTML编码一致,文件编码可以在DW里属性中设置,而HTML编码则需要在HTML的Head头代码中设置,例如以下代码:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

3.同样是UTF-8文件,为何也会出现异常空格
? ? ? 其实UTF-8有两种格式,一种是"包括Unicode签名(BOM)",一种不带BOM签名的。所以建议在DW中将UTF-8的BOM签名勾选去掉。就可以解决问题了。
基本上参照上面三种方式去解决,可以解决空格异样的情况。
??? 但是,以上方法都试过了,结果还是不行。我去,啥原因呢?找啊找啊找,最后发现自己在<?php前面加了空格。这真的是自己找的,有木有,有木有,还浪费我时间生命,真的是伤不起啊伤不起~~

原文链接:http://www.webpj.com/wzjs/20114684.htm