【发布时间】:2015-10-28 21:38:52
【问题描述】:
我有一些从我的数据库中返回的文本,如下所示:
<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() 让它工作。
有人可以帮我吗?谢谢!
【问题讨论】:
-
向我们展示您对
substr的尝试,以便我们修复它。 -
但事实并非如此。
0, 1);应该输出T。相反,它输出<。 -
PHP 不知道 html 是什么。 HTML 只是文本,PHP 会像对待任何其他文本一样对待它。如果您只需要 html sn-p 的文本节点,则由您来提取这些文本 sn-ps。这意味着使用适当的 HTML 感知工具,例如 DOM。
标签: php html substring html-entities