如何将文本剪切一半,但保持HTML层次结构完整?

时间:2013-03-20 11:13:14

标签: php html regex

我需要实现一个RSS提要,其中只显示文章文本的一半(或最多n个字符),但所有HTML标记都完好无损(例如图像或youtube视频)。

例如,如果我将文本剪切的字符数限制在youtube视频的代码中间(此外,在所有内容的表中),该怎么写?

的代码

a)允许额外的字符到youtube的代码和表格的结束标记,或

b)在表格打开之前剪切文本

这些解决方案都是可以接受的。

例如,如果我在文章中有这个文字:

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vel eros eu mi estibulum blandit 
<table>
   <tr>
      <td>
         <iframe src="http://video.example.com"></iframe>
      </td>
   </tr>
</table>
Phasellus sollicitudin nulla imperdiet metus ullamcorper eget ornare dui rutrum. </p>

让我们说我必须削减的字符数量适合在#34; http://video.example.com&#34;中间的某个位置。显然,发送iframe标签的一半(以及表的一半)并不好。

所以,我想要的是

A)

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vel eros eu mi estibulum blandit </p>

或b)

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vel eros eu mi estibulum blandit 
<table>
   <tr>
      <td>
         <iframe src="http://video.example.com"></iframe>
      </td>
   </tr>
</table>
</p>

同样适用于在ul列表,div或其他可能存在的中间切割。唯一允许在中间删除的是段落,因为无论如何一切都在段落中。

我希望你知道我的意思,我不知道我是否解释得很好。

1 个答案:

答案 0 :(得分:1)

你可以得到innerHTML()元素,在文本的一半之前创建一个子字符串,然后使用innerHTML()再次更改它,遍历所有元素。