-------------- CHỈNH SỬA ------------------------Bảng HTML thành mảng php
Vì vậy, tôi đang đi với cách tiếp cận DOM. Dưới đây là những gì tôi có cho đến thời điểm này:
<?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 />";
}
}
?>
Vấn đề tôi đang gặp phải là tôi chỉ muốn chọn td từ mỗi hàng trong bảng. Tôi đang cố gắng để đạt được điều này với một vòng lặp lồng nhau. Thật không may Nó đang in văn bản của mỗi thẻ trên trang bao nhiêu lần như có thẻ. làm thế nào tôi có thể nhận được nó để chỉ in td của mỗi tr và không phải mỗi td trên dom?
Tôi cần sử dụng bảng html làm nguồn dữ liệu của mình vì tôi không có quyền truy cập vào cơ sở dữ liệu. Tôi con số để có thể truy vấn dữ liệu từ bảng html tôi cần tạo ra một chức năng để chuyển đổi bảng thành một mảng, hoặc một mảng đa chiều.
Tôi có ý tưởng cơ bản tôi nghĩ nhưng tôi cần một số trợ giúp hoàn thành mã để trả về một mảng dựa trên bảng html.
Cũng Nếu bạn có một cách tốt hơn để làm điều này không phải là chuyển đổi bảng để một mảng sau đó xin vui lòng cho tôi biết
Đây là ý tưởng tôi đã cho đến nay:
<?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 ???
}
?>
Cách tốt nhất là nên sử dụng một phân tích cú pháp DOM, ví dụ http://php.net/manual/en/book.dom.php – jli
http: //stackoverflow.com/questions/3627489/php-parse-html-code –
Do 'data.htm' chỉ chứa một bảng và nội dung của nó, hoặc nó là một trang html đầy đủ với nhiều phần tử hơn? Dù sao, mã của bạn vẫn còn thiếu tất cả các phần liên quan đến việc phân tích các phần tử bảng. IMO, tôi sẽ tìm một cách khác: Tôi không thích ý tưởng đọc một bảng html. – jap1968