У меня есть строка Html как это:Дом Раскол текст в заголовках и пунктах
<h2>Header 1</h2>
<p>Example line 1</p>
<p>Example line 2</p>
<p>Example line 3</p>
<h2>Header 2</h2>
<p>Example line 1</p>
<p>Example line 2</p>
...
В конце концов я хочу, чтобы преобразовать это в Twitter Bootstrap вкладок Html. Для того, чтобы быть в состоянии сделать это, я предпочитаю иметь строку в один (или два) массив (ы):
'Header 1' => '<p>Example line 1</p><p>Example line 2</p><p>Example line 3</p>'
'Header 2' => '<p>Example line 1</p><p>Example line 2</p>'
Что я сейчас:
$source = new \Htmldom();
$source->load($string);
foreach ($source->find('h2') as $item)
{
$tabs[] = $item->innertext;
$panels[] = $item->next_sibling()->innertext;
}
Это дает мне массив заголовки и массив с первого собрата этих заголовков (пункты в этом примере):
array (size=2)
0 => string 'Header 1' (length=10)
1 => string 'Header 2' (length=9)
array (size=2)
0 => string '<p>Example line 1</p>' (length=312)
1 => string '<p>Example line 1</p>' (length=112)
конечно, я хочу, чтобы все пункты, а не только первые из них. Мне кажется, что с этим подходом это невозможно. Я ошибаюсь? Как я могу это достичь?
можно видеть, что ' h2' не закрыты. Это опечатка только в этом посте, а также в вашем коде? –
Также дайте нам ссылку на библиотеку, которую вы используете для разбора HTML. –
@michail_w Typo, исправил его! Библиотека - это SimplePHPDom. Или любой другой в этом отношении. – Klaaz