PHP学习之Smarty+CSS+DIV页面居中问题
在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页面居中问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何向微软提交 Windows 7 测试
- 下一篇: IIS6中配置PHP