Neo's Blog

首頁 相本 討論 書籤

分類目錄
本站日誌 (51)
碎碎唸啦 (173)
網站架設 (84)
程式設計 (161)
軟體使用 (69)
電子商務 (126)
經營奇想 (48)
基金理財 (11)
聰明消費 (87)
電影心得 (47)
開放原碼 (16)
工作記錄 (2)
毛毛小記 (9)
就是不同 (2)




歷史資料
 




May 18, 2005
[PHP] 利用 tidy 整理 HTML 標籤代碼

Web 上早期流行的 BBCode 就是一種簡易的 HTML 代碼,除了讓使用者方便輸入,程式上也可以省去處理 HTML tag 的麻煩。

近年來在 HTMLAreaFCKeditor 等免費又功能強大的 WYSWYG 編輯器壓境下,BBCode 已有日漸式微的趨勢。

若要開放 HTML 給使用者,在程式設計上對於 HTML 的處理就要更加用心,否則使用者的 HTML 碼很容易就會把整個版面給破壞掉。

舉個例子像:


<TABLE border="1">
<TR>
<TD>頁首</TD>
</TR>
<TR>
<TD>
<!-- 使用者輸入開始 -->
我來亂的!
</TABLE>

<!-- 使用者輸入結束 -->
</TD>
</TR>
<TR>
<TD>頁尾</TD>
</TR>
</TABLE>

紅字的部份很明顯使用者只要下一個</TABLE>,畫面就不是我們想看到的樣子了。

如果要一個個去檢核實在很累,這時 HTML Tidy Library 就可以派上用場了。

http://tidy.sourceforge.net/

不過看官方網站上並沒有 PHP 的版本怎麼辦?

其實 PHP 5 有已經有把 HTML Tidy Library 包在裡面了,PHP 4 也可以下載 PECL 套件來安裝,詳細的安裝方式及可以參考:

http://tw2.php.net/tidy

不過 PHP 4 上的 tidy 套件只出到 1.1,PHP 5 內建的 tidy 2.0 可以說是最完整好用的,像最實用的tidy_repair_string 修復函數,範例可以參考官方說明:

http://php.nctu.edu.tw/manual/en/function.tidy-repair-string.php

當然除了 HTML 結構要完整,還有很多細節都必須要處理好。如 PCHOME 的拍賣就沒有 Yahoo! 拍賣處理的乾淨,可以看看他們的版面完全被使用者玩爛了:

http://goods.bid.pchome.com.tw/item/show?10050318876304

我的解析度是 1024*768,整個畫面都被撐開了:

20050518_04.gif

罪魁禍首在下面:

20050518_05.gif

 
由 Neo 發表於 May 18, 2005 10:45 PM 收進你的MyShare個人書籤  

滿不錯的資訊,小弟想請教Neo,發PHP4 的Tidy 1.1真的不夠用,是否有辦法把php4的Tidy升級到2.0呢


mote 發表於 July 4, 2005 02:31 PM

剛剛看 PCHOME 已經把原來的問題改好了,呵呵。^^

mote:

可能要自己下載 2.0 編譯成 so 檔,只是我沒試過,如果成功的話歡迎回來分享。

- compile and install libtidy
- compile and install with php_tidy
- add the extension=tidy.so line

摘自:
http://www.webmasterworld.com/forum88/4599.htm


Neo 發表於 July 5, 2005 06:13 PM
發表迴響  
(*星號開頭為必填欄位)











(請輸入您看到的數字,看不到請按右鍵->顯示圖片)


記住我的資訊?







Copyright 2005 Neo's Blog All rights reserved.