在Dreamweaver 中写了个简单的的index.php:

<?php
include_once("./class.config.php");
$Smarty->display("Index.html");
?>

顺手在标题中输入了几个字:企业资源管理系统,index.html是使用div+css进行布局的,单独打开index.html可以看到居中显示,而调用smarty后总是居左显示.

后来用ultraedit打开index.php,发现文件内容是:

<title>企业资源管理系统</title>

<?php
include_once("./class.config.php");
$Smarty->display("Index.html");
?>

将<title>企业资源管理系统</title>去掉后显示正常.

引用原文:

发现自己总在走前人走过的路,犯前人犯过的错...

最近使用smarty+CSS模板,遇到了部分CSS无法解析的问题,尝试了很多方法,在几乎放弃的时候找到了这篇文章,一看日期,竟然是2006年11月的...

新项目完全采用UTF-8编码,这是我的夙愿,可就是这个麻烦的UTF-8编码,让我闹心了数小时!
今天下午制作好了页面的模板,当载入Smarty运行的时候,发现在Firefox下正常显示,而在IE下,原本好好居中显示的页面一下变得偏左了,而且部分CSS也无法载入,字体极其难看!查阅代码,无法找出任何破绽,而不用Smarty转而采用原始的PHP+HTML混写的时候则无此现象,因此开始怀疑Smarty有问题,上phpchina.cn求助,无人解答;自己又下载了Smarty的最新版本,依然无法解决这个故障,心灰意冷,甚至打算在项目中放弃Smarty。
根据以往的经验,我开始怀疑是当PHP输出HTML的时候向其中加入了额外的不可见代码,于是将PHP输出的内容原封不动保存为HTML,然后提交到validator.w3.org进行XHTML验证,果然,验证失败,提示文件头部被加入了BOM(万国码档案签名:Byte Order Mark, U+FEFF)标记,妈的,就是这个垃圾标记,已经不是第一次害我了!
于是,重新打开DM和UltraEdit重新对PHP页面以及模板页面进行编码转换,去除了其中的BOM标记,一切正常!
这里附上一篇写的很全面的有关BOM的文章,希望能帮助和我一样受害的人。
=================================================================

utf-8 保存文件的 bom 问题

大家都知道 utf-8 是一种在web应用中经常使用的一种 unicode 字符的编码方式,使用 utf-8 的好处在于它是一种变长的编码方式,对于 ANSII 码编码长度为1个字节,这样的话在传输大量 ASCII 字符集的网页时,可以大量节约网络带宽。

不过如果大家使用 utf-8 编码来编写网页的时候, 往往会因为 bom (Byte Order Mark) 的问题,导致网页中经常出现一些不明的空行或者乱码字符。 这些都是因为 utf-8 编码方式对于 bom 不是强制的。因此 utf-8 编码在保存文件的时候,会出现不同的处理方式。

比如有的浏览器(FireFox)可以自动过滤掉所有 utf-8 bom , 有的 (IE) 只能过滤掉一次 bom (为什么是一次? 当你出现 Include 多次文件时就会碰上这个问题了:) );

对此 w3.org 标准 FAQ 中对此问题有一个专门的描述:

http://www.w3.org/International/questions/qa-utf8-bom

在此个人认为对于这个问题最好的处理方式就是在编辑(保存)文件的时候统一去除 utf-8 bom , 同时又必须使得编辑器可以正确读出 utf-8 字符集,但可惜目前 windows 系统中对于保存文件的处理方式缺省情款下都会自动加上 bom.

(通过抓包工具分析, google 中文页面统一使用 utf-8 编码方式,下载的页面中没有带有 bom 标识)

操作系统: WindowsXP Professional , 缺省字符集:中文

1) notepad : 可以自动识别出没有带 bom 的 utf-8 编码格式文件,但不可以控制保存文件时是否添加 bom , 如果保存文件,那么会统一添加 bom 。

2)editplus : 不能自动识别出没有 bom 的 utf-8 编码格式文件,保存文件为 utf-8 时会自动添加 bom

3) UltraEdit : 对于字符编码的功能最为强大, 可以自动识别带 bom 和不带 bom 的 utf-8 文件 (可以配置) ; 保存的时候可以通过配置选择是否添加 bom.

(特别需要注意的是,保存一个新建立的文件时,需要选择另存为 utf-8 no bom 格式)

后来发现 Notepad ++ 也对于 utf-8 bom 支持比较好,推荐大家使用。

转载于:https://www.cnblogs.com/GarfieldTom/archive/2009/06/02/1494638.html

PHP学习之Smarty+CSS+DIV页面居中问题相关推荐

  1. div + css 实现页面居中显示

    我们需要的效果就是在页面的视口上,居中显示出一个div用以承载信息 效果如下 第一种情况:确定宽高 此时我们只需要将该div设置为固定定位,最后设置top.left属性值即可 //css部分body{ ...

  2. 精通CSS+DIV基础总结(三)

    Div+CSS可是实现简单的网页设计,对于需要添加动作,更方便的交互,Javascript给我们提供了方便:数据的存储可以利用XML使其更加方便:而对于减少页面与服务器的交互,可以利用Ajax技术,与 ...

  3. rem和em学习笔记及CSS预处理

    rem和em学习笔记及CSS预处理 1.当元素A的字体单位是n rem时,它将根据根元素(html)的font-size的大小作为基准,比如  View Code parent-div中的em-div ...

  4. css 首字下沉 错位,css+div错位问题的修复小结

    前段时间就发现本站涂涂研版(z-blog)在手机上浏览本小站的时候就会发现电脑版错位现象,以及今天博友林肆告诉我说用电脑浏览本站的时候:全屏不会出现css+div错位的现象,但是窗口化的时候,尤其是拖 ...

  5. css清除浮动的几种方法_web前端学习路线分享CSS浮动-清除浮动篇

    web前端学习路线分享CSS浮动-清除浮动篇,为什么要清除浮动 这里所说的清除浮动,并不是不要浮动了,而是清除浮动与浮动之间的影响.那么到底会有什么影响呢? 1.高度塌陷 举个例子我们看一下. 我们在 ...

  6. 应用css div进行页面布局设计,利用CSS与DIV进行页面布局.ppt

    <利用CSS与DIV进行页面布局.ppt>由会员分享,可在线阅读,更多相关<利用CSS与DIV进行页面布局.ppt(6页珍藏版)>请在人人文库网上搜索. 1.利用CSS与DIV ...

  7. css div滚动_如何使用CSS创建可垂直滚动的div?

    css div滚动 Introduction: 介绍: Dealing with divs has become a regularity and divs are used for many pur ...

  8. html div三角形,css+div打造三角形(箭头)

    在很多网站都见过这样的箭头 ,之前我一直以为是图片,直到今天才知道原来可以用css做.开始看代码没太看懂,后来自己试了几遍才恍然大悟.贴出来分享下.(大神请直接忽略) 先看代码: HTML部分就是一个 ...

  9. bootstrap思想总结_bootstrap学习心得总结-css样式设计分享

    由于项目需要,所以打算好好学习下bootstrap框架,之前了解一点,框架总体不难,但涉及到的东西还是很多,想要熟练掌握它,还是要多练练. 一:bootstrap是什么? bs是什么? 即前端页面搭建 ...

最新文章

  1. 在CentOS 6.x上安装luajit 2.0.4
  2. 如何在Bash脚本中将DOS / Windows换行符(CRLF)转换为Unix换行符(LF)?
  3. 实验4:正确的为各种属性赋值||实验7:通过abstract属性创建一个模板bean||实验8:bean之间的依赖||实验9:测试bean的作用域,分别创建单实例和多实例的bean★(测试)
  4. MVC之AJAX异步提交表单
  5. 第三方登录(QQ登录)开发流程详解
  6. 0810 - 代码,还是得一行行写
  7. 为什么基于内容的读取缓存 (CBRC) 对于 Horizon View 和 VSAN 如此重要?
  8. 【C语言简单说】十八:二维数组
  9. “睡服”面试官系列第十七篇之Reflect(建议收藏学习)
  10. 一、uniapp项目(封装异步请求、moment.js时间处理、封装手势滑动组件、下载图片到本地)
  11. 2.6 特殊的矩阵和向量
  12. mvc php 分页,MVC+jQuery.Ajax异步实现增删改查和分页_jquery
  13. SQL http://www.myfeng.cn/?T3009
  14. Lammps之循环定压比热熔计算
  15. RK3588超强8K视频输出NRV边缘计算盒 AI人工智能
  16. 网络安全状况分析报告-2019年5月
  17. Java swing的主题风格设置
  18. SOJ4480 Easy Problem IV (并查集)
  19. react native 渐变 BVLinearGradient报错不存在
  20. H.264系列文章(三)——帧内预测

热门文章

  1. C语言再学习-- assert 断言宏
  2. zcmu1862(模拟)
  3. JZOJ 3807. 【NOIP2014模拟8.25】地砖铺设
  4. 微信验证服务器是怎么回事,微信服务器认证为什么需要这么多参数?
  5. linux脚本重命名文件,shell脚本批量对文件改名(名字新旧不相关)
  6. python string模块安装_python String模块-阿里云开发者社区
  7. 简述python程序的基本构成_(一)Python入门-2编程基本概念:01程序的构成
  8. USB鼠标失灵的解决办法
  9. SPOJ 1812 LCS2 - Longest Common Substring II (后缀自动机)【两种做法】
  10. 加载vue文件步骤_vue中.vue文件解析步骤详解