2015-10-28 48 views
2

我有回來從我的數據庫,像這樣一些文字:SUBSTR字符串以HTML在PHP

<span rgb(61,="" 36,="" 36);="" font-family:="" 'frutiger="" neue="" w01="" book',="" 'helvetica="" neue',="" helvetica,="" arial,="" sans-serif;="" line-height:="" 23.8px;"="">The Department of ...

我用echo html_entity_decode($item->body);來顯示:

The Department of ......

但是,如果我在此內容上使用PHP substr函數,它永遠不會正確顯示。它將顯示HTML的前x個字符,而不是HTML格式的文本。

這裏是我的嘗試:echo substr(html_entity_decode($item->body), 0, 5);

但它並不顯示任何內容。如果我嘗試像0, 200);量會顯示:

The Department of Molec

但這絕對不是格式化文本的前200個字符,因爲第一個字符是T

我的想法是,必須有格式然後substr,即使我不能使用它們自己使用html_entity_decode()substr()工作。

有人可以幫我嗎?謝謝!

+2

向我們展示'substr'的​​嘗試,以便我們解決它。 – Script47

+0

更新了我的文章。 – Nic

+0

是的,我有...... – Nic

回答

0

您將在源代碼中看到輸出,但它不會被渲染。源代碼將顯示:

echo substr(html_entity_decode($item->body), 0, 5); 
// Output: "<span" 

你可能想要做的是搜索的HTML標籤的末尾,顯示後5個字符,如:

$text = html_entity_decode($item->body); 
$start = strpos($text, '>') + 1; 
echo substr($text, $start, 5); 
+0

顯示正確的文本,但是,我的href的中斷。 – Nic

+0

然後有一種將[DOMDocument](http://php.net/manual/en/book.dom.php)閱讀爲可怕的方法,並通過節點和nodeValues進行解析 –

1

嘗試使用此而不是html_entity_decode():

strip_tags($item->body); 

用strip_tags將刪除字符串的所有HTML標籤。所以你最好先對待絃樂,然後用它做點什麼。