Как спарсить данные из таблицы html через?

У меня PHP скрипт формирует таблицу в html файле, с такой структурой для каждой строки таблицы

<tr>
<td id="1" style="width:810"></td>
<td id="2" style="width:4969"></td>
<td id="3" style="width:2323"></td>
<td id="4" style="width:810"></td>
<td id="5" style="width:810"></td>
<td id="6" style="width:1000"></td>
<td id="7" style="width:783"></td>
<td id="8" style="width:783"></td>
<td id="9" style="width:783"></td>
<td id="10" style="width:783"></td>
<td id="11" style="width:1566"></td>
</tr>

Подскажите как из этой таблицы получить данные по определённым ячейкам , например по тем , которые id=2, id =3, id =7. Я пробовал парсером "Simple html dom parser" вот так :

    foreach($html->find('#2 #3') as $a){
            $naimen =$a->innertext;
//**тут проверка на пустоту, т.к некоторые строки не содержат данных*/
            if (iconv_strlen($naimen) >0 ) { 
                $index++;
                $activeSheet->setCellValue('A'.$index, $index);
                $activeSheet->setCellValue('D'.$index, $naimen);
            }
    }

Но данный парсер возвращает всё единым массивом, подскажите, есть ли другие методы парсинга или как модифицировать запрос в данном парсере? Т.е можно ли как то элементы собрать в один двумерный, или в разные массивы ?


Ответы (1 шт):

Автор решения: Mihail Mishin

Решается вот так - проходм по строкам, и потом уже элементы с id вставялем куда нужно

if($html->innertext!='' and count($html->find('tr'))) {

    foreach ($html->find('tr') as $pub) {
        $title = $pub->find('#2', 0);
        $marka = $pub->find('#3', 0);
        $ed = $pub->find('#4', 0);
   }
}
→ Ссылка