2012-07-31 36 views
-2

我使用NicEdit作爲我的網站的富文本編輯器。在我編輯文本後,它存儲在我的數據庫中。如何從CSS樣式中釋放段落?

說我已經編輯了一些文本,並將其存儲這樣的內容領域:

<div> This is just some sample <b>text that is displayed </b> to help <a href="#"> My example </a> </div> 

現在,當我想在我的主頁上顯示的內容的一些部分,並添加一個「更多」鏈接,以便用戶可以訪問實際頁面。

<?php 
    echo substr($row['content'],0,50); 
    if(strlen($row['content']))>50) { 
     echo "<a href=\"#\"> read more </a>"; 
    } 
?> 

所以上面的代碼將提取說:

<div> This is just some sample <b>text 

從表中的內容領域。當它顯示在頁面上時,我們可以看到<div>已關閉,也沒有<b>。因此,頁面中的其他內容完全搞砸了。

什麼是解決方案?

+0

您不能只是截斷HTML片段的結尾 - 如果跨越切點的任何「打開」標記,則會打破整個DOM結構。您需要使用DOM操作來重建字符串,並消除超出切點的text-but-not-tags。 – 2012-07-31 16:52:28

+0

可能重複[如何關閉未關閉的HTMl標籤?](http://stackoverflow.com/questions/3059398/how-to-close-unclosed-html-tags) – 2012-07-31 16:54:18

+0

我認爲你有一對多) 。如果(strlen($ row ['content'])> 50){ – Jim 2012-07-31 16:54:46

回答

0

echo substr(strip_tags($row['content']),0,50)

然後,當他們 '獲取更多的' 不跑strip_tags()

更新..

+0

謝謝..它工作。 – 2012-07-31 16:59:13

+0

沒問題,如果您使用它作爲您的解決方案,可能會標記爲答案。 – Zac 2012-07-31 17:02:20

+0

現在還有另一個問題。它剝離標籤但在其位置添加空白空間。因此,雖然顯示..它顯示沒有什麼..或幾乎沒有字符,即使我已經使用substr($ data,0,250) – 2012-07-31 17:09:00

0

最簡單的方法 - 僅使用strip_tags()函數將摘要文本顯示爲「純文本」。

0

我會建議使用strip_tags,因爲沒有簡單的方法來自動關閉標籤。但是,您可以看一下這個問題:How to close unclosed HTML Tags?

+0

謝謝..這是我正在尋找。 – 2012-07-31 16:58:22

+0

現在還有另一個問題。 它是剝離標籤,但在其位置添加空的空間。所以,雖然顯示..它顯示沒有什麼..或很少的字符,即使我已經使用substr($ data,0,250) – 2012-07-31 17:05:30