-------------- EDIT ------------------------
Итак, я перехожу к подходу DOM. Вот что я до сих пор:
<?php function getdata(){
$contents = file_get_contents('internatdata.htm');
//create a DOM based off of the string from the html table
$DOM = new DOMDocument;
$DOM->loadHTML($contents);
//get all tr and td
$items = $DOM->getElementsByTagName('tr');
$tds = $DOM->getElementsByTagName('td');
function tdrows($elements){
$str = "";
for ($ii =0; $ii < $elements->length; $ii++){
$str .= $elements->item($ii)->nodeValue . ",";
}
return $str;
}
for ($i = 0; $i < $items->length; $i++){
echo tdrows($tds) . "; <br />";
}
}
?>
Проблема, с которой я сталкиваюсь, заключается в том, что я хочу только выбрать td из каждой строки таблицы. Я пытаюсь достичь этого с помощью вложенного цикла. К сожалению, он печатает текст каждого тега на странице, как много раз, когда есть теги. как я могу получить его так, чтобы он печатал только td каждого tr, а не каждый td на dom?
Мне нужно использовать html-таблицу в качестве источника моих данных, потому что у меня нет доступа к базе данных. Я полагаю, что могу запросить данные из таблицы html, мне нужно создать функцию для преобразования таблицы в массив или многомерный массив.
У меня есть основная идея, я думаю, но мне нужна помощь в завершении кода, чтобы вернуть массив, основанный на таблице html.
Также, если у вас есть лучший способ сделать это, кроме преобразования таблицы в массив, пожалуйста, дайте мне знать
Вот моя идея:
<?php
function getdata(){
$contents = file_get_contents('data.htm');
//add delimiters (semicolon for a row and comma for a cell) ???
$stripped = strip_tags($contents);
//explode into an array based off the delimiters above ???
}
?>