我有一个字符串,如果是长于可以说10个字,我想把它分成两个部分。第二部分将包含在其他地方 - “更多”链接之后。分割HTML字符串
字符串将举行html标签也不过。 举一个例子字符串可能是:
<p>This is just a test string with more words than the <strong>amount allow</strong> before split, blah blah blah</p>
所以在情况下,我会想:提前
我有一个字符串,如果是长于可以说10个字,我想把它分成两个部分。第二部分将包含在其他地方 - “更多”链接之后。分割HTML字符串
字符串将举行html标签也不过。 举一个例子字符串可能是:
<p>This is just a test string with more words than the <strong>amount allow</strong> before split, blah blah blah</p>
所以在情况下,我会想:提前
好
$string[0] // <p>This is just a test string with more words than</p>;
$string[1] // <p>the <strong>amount allow</strong> before split, blah blah blah</p>;
谢谢,我有同样的问题。我解决了这个问题,让我的新闻作家允许使用“[intro] ... [/ intro]” - 他们文本中的标签。然后我用正则表达式解析标签。
如果切割应自动,而无需使用特殊标签来完成,这是有点难度。您可以使用substr()
功能。但是,那么你会遇到html标签的问题。因此,我会用类似的方式将它们剪切:substr(strip_tags($text), 0, 50)
。这将允许显示50个字符,排除html标签。
也许这可以帮助你:)
这不是小事,但这里有一个想法:
$inTag
- 您是否在标签内$inAttribute
- 是否R您是一个标签属性中(其中“>”并没有结束标记)$currentTagSoFar
- 当前标签的所有字符。你把当前打开的标签(推,当你发现一个开始标签堆栈变量,弹出当你发现 - 将与“S”,然后选择“ST”,“海峡”,等等,直到“强”$openedTags
启动关闭一个)$wordsSoFar
- 到目前为止,你已经找到$insideComment
,这取决于你想如何彻底成为
我没有看到一个简单的答案,这是由于HTML限制。想象一下,整个文本被包裹在一个跨度中......如果你还关闭了代码片段中的标记并将开放添加到其余部分,则只能将其分开。 – unomi 2010-06-10 10:29:40