在不剪切标签的情况下拆分HTML

时间:2014-09-03 16:09:00

标签: php html

我一直在尝试将每个分割中的PHP字符串拆分为任意数量的字符。但是,我正在寻找一种不破坏HTML标签的方法。这是一个例子:

$string = 'Section 1: 
<table width = "528" border="0" cellpadding="0" cellspacing="0">
<tr>    <td width="20"> </td>   <td width="15" valign="top"> &bull; </td>   <td valign="top"> Element 1 </td></tr>
<tr>    <td width="20"> </td>   <td width="15" valign="top"> &bull; </td>   <td valign="top"> Element 2 </td></tr>
<tr>    <td width="20"> </td>   <td width="15" valign="top"> &bull; </td>   <td valign="top"> Element 3 </td></tr>
<tr>    <td width="20"> </td>   <td width="15" valign="top">&bull; </td>    <td valign="top"> Element 4 </td></tr>
<tr>    <td width="20"> </td>   <td width="15" valign="top"> &bull; </td>   <td valign="top"> Element 5 </td></tr>
<tr>    <td width="20"> </td>   <td width="15" valign="top"> &bull; </td>   <td valign="top"> Element 6 </td></tr>
</table>

Section 2:
<table width = "528" border="0" cellpadding="0" cellspacing="0">
<tr>    <td width="20"> </td>   <td width="15" valign="top"> &bull; </td>   <td valign="top"> Element 7 </td></tr>
<tr>    <td width="20"> </td>   <td width="15" valign="top"> &bull; </td>   <td valign="top"> Element 8 </td></tr>
<tr>    <td width="20"> </td>   <td width="15" valign="top"> &bull; </td>   <td valign="top"> Element 9 </td></tr>
<tr>    <td width="20"> </td>   <td width="15" valign="top"> &bull; </td>   <td valign="top"> Element 10 </td></tr>
<tr>    <td width="20"> </td>   <td width="15" valign="top"> &bull; </td>   <td valign="top"> Element 11 </td></tr>
<tr>    <td width="20"> </td>   <td width="15" valign="top"> &bull; </td>   <td valign="top"> Element 12 </td></tr>
<tr>    <td width="20"> </td>   <td width="15" valign="top"> &bull; </td>   <td valign="top"> Element 13 </td></tr>
</table>';

$charAmount = 450;
$textSplit = array();

while ($string){
    array_push($textSplit, substr($string, 0, $charAmount));
    $string = substr($string, $charAmount);
}

var_dump($textSplit);

在这种情况下,两个标签被破坏。我喜欢在分割结束时切换的任何标签只是跳到下一个分割,但我不知道如何做到这一点。

2 个答案:

答案 0 :(得分:1)

我不是php人,但逻辑上我可以提供帮助,就在拆分之前检查哪个dese两个字符最接近拆分索引<>

如果遇到<,你会错误地分裂,所以跳过

如果遇到>则继续拆分

我已经成功地在jQuery中完成了它有时回来了

答案 1 :(得分:0)

关于拆分html字符串,我现在没有任何想法,但是使用限制字符剪切字符串,您可以在链接中引用解决方案:https://github.com/dhngoc/php-cut-html-string。 该资源可以帮助您获得更多想法。