我使用tinymce分页来分隔内容,在php方面我想在分页后显示第二部分:
$str = '<div>
<p dir="rtl" style="text-align: justify;"><span style="font-size:medium;"><!-- pagebreak --></span></p><p>fdsfsdf f sf f s</p></div>'
$arr = explode("<!-- pagebreak -->", $str);
当我想使用echo $arr[0]
或echo $arr[1]
时,它已取消<div>
标记,这将打破整个网站
答案 0 :(得分:2)
由于OP表示他不确定关闭</div>
我建议采用这种方式处理
第1步:
查看您是否已关闭<div>
可以通过在列
中查找div
的出现次数来做到
$occurance = substr_count($arr[0], 'div');
第2步:
如果您的偶数为2,4,6,则可以假设div已关闭,否则div未关闭。
$occurance = substr_count($arr[0], 'div');
if ($occurance % 2 != 0) {
echo '</div>'
}
如果是偶数,那么你可以保持原样。否则将</div>
添加到其中
更多解释
$occurance = substr_count($arr[0], 'div');
if ($occurance % 2 == 0)
{
// do nothing
}
else
{
echo '</div>'; // adding closed div
}
注意:
我相信你没有在文本区域中添加不必要的div
在与Lajos Arpad讨论之后,我只用substr_count
失败案例
拥有不正确的<div>
代码
<div></div></div><div>
如果我们有<div class="foobar">
,则不会被观察
如果我们有<div>division by 0</div>
,则不会被观察到。
如何过来
然后我在这次谈话后有点想一想并得出结论
open
div
即,
<div*
divOpen将有<div>
或<div class=*** >
或<div id=***>
close
div
即,
</div>
第一路
计算出现次数计算页面/段落中<div
的数量以计算divOpen
计算页面/段落中</div>
的数量以计算divClose
可以通过
完成$divOpen = substr_count($str, '<div');
$divClose = substr_count($str, '</div>');
第二路
计算出现次数计算页面/段落中<div
的数量以计算divOpen
计算页面/段落中</div>
的数量以计算divClose
可以通过
完成preg_match_all('~<div\b[^>]*>~', $str, $match);
preg_match_all('~</div>~', $str, $match);
注意:
如果输入是错误的HTML,即,有不正确的<div></div></div><div>
它将失败。
然后,过了它的步骤将确定正确引用<div>
和不正确引用<div>
的数量。并尝试替换或删除错误放置的<div>
。因此,建议在数据库中使用一个好的HTML。