我有以下问题:
到目前为止,我已按部分限制了部分,但这导致HTML非常无效(第1部分有<div><h2>Title</h2><div>Some conten
,第2部分有t</div></div>
),这导致mPDF无法正确应用CSS样式到以下部分。
<div><h2>Title</h2>
和<div>Some content</div></div>
,即使外部div没有关闭。
最好的方法是使用split方法将每个部分最多分割100个&#39000个字符,然后缩短它,使其仅包含最后一个HTML结束标记?
答案 0 :(得分:1)
你需要循环并使用带有偏移量的strrpos和strpos。
$len = strlen($str);
$pos2 = 0;
$previous = 0;
While($pos2 < $len){
$previous = $pos2;
$pos = strrpos($str, "</", $pos2+100000);
$pos2 = strpos($str, ">", $pos);
$parts[] = substr($str, $previous, $pos2);
}
未经测试,但应该采取措施或可能需要一些轻微的纠正。
strrpos找到结束标记的开头,然后我使用该位置查找标记的结尾 使用substr从先前位置切换到新的结束标记并将其保存在parts数组中 while循环应该在找到最后一个结束标记时结束 可能发生的问题是在最后一个结束标记之后是否有文本或空格。我相信这会使循环永无止境。