0
我试图在数组中放入一些HTML信息。将段落拆分为多维数组
<p>Title 1</p>
<p><span>Content 1</span></p>
<p><span>Content 2</span></p>
<p>Title 2</p>
<p><span>Content 1</span></p>
<p><span>Content 2</span></p>
<p><span>Content 3</span></p>
我想把它们放在字段为“title”和“content”的数组中。我的问题是将这些p-tag放在一起,它们有一个跨度并且属于同一个标题。
结果应该是:(用strip_tags为标题,并删除跨度内容)
[0]['title'] => 'Title 1',
[0]['content'] => ' <p>Content 1</p><p>Content 2</p>',
[1]['title'] => 'Title 2',
[1]['content'] => ' <p>Content 1</p><p>Content 2</p><p>Content 3</p>',
我尝试:
$paragraphs = explode('<p>', $html);
for ($i = 0 ; $i < count($paragraphs) ; $i++) {
$paragraphs[$i] = '<p>' . $paragraphs[$i];
if (strpos($paragraphs[$i], '<span') !== false) $content .= $paragraphs[$i];
else $title = $paragraphs[$i];
}
但是,这将所有的内容合并到一个变量。我需要上面的数组...
为了做到这一点,我建议你看看[PHP DOM](http://php.net/manual/en/book.dom.php)。但试试'$ content [$ counter]。= $ paragraph [$ i]'来开始。标题更改时应增加'$ counter'。 – bansi 2014-09-20 12:47:30