Как спарсить данные из таблицы 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);
}
}