2010-07-29 38 views
0

在我的PHP Web應用程序中,我有一個數據輸入窗體,用戶將使用富文本編輯器(FCKEditor使用)輸入數據,並將標記從編輯器保存到數據庫表。在另一個頁面,我必須顯示內容的前200個字符(查看更多鏈接查看整個事情)。所以當我第一次使用200個字符的時候,HTM Lmarkup就打破了,因爲我可能會錯過一些已經開始的html標籤的結束標籤。我該如何擺脫這個?我知道我可以使用strip_tags去除所有的HTML標記。但是我想保持原樣。是否有什麼我可以做的解決這個問題?PHP:採取前200個字符時的HTML標記刪除

+1

您必須先定義一些行爲:如果半個表格行適合會發生什麼?包括行?離開桌子?這也適用於列表('ul','ol',定義列表)......你可能會更好地除去幾個標籤。 – MvanGeest 2010-07-29 16:20:43

+0

MvanGeest是正確的,這可能是爲什麼即使WordPress從「預覽」中剝離標籤。對特定標籤的解析不足,正如MvanGeest所說,編寫邏輯來確定如何處理部分列表,表格等,這些都沒有太多的工作要做。 – 2010-07-29 16:37:58

回答

2

通過HTMLTidy運行它可能有所幫助。例如,當鏈接標記(a)打開但未關閉時,可能有助於擺脫下一個元素的「流血」鏈接。如果您的腳本從標籤中間刪除了字符串,那麼您仍然會遇到問題,即「< di」。這不是傻瓜式的解決方案,我不會依賴它。

imgo的最佳實踐是分別處理文本的「短」版本,只需讓用戶將其輸入單獨的文本編輯器即可。