2013-01-20 124 views
1

我總是必須使用數據庫的內容來顯示錶格,但不能倒退。一家公司剛剛發佈了一些帶有一些有用信息的HTML表格,但他們不提供數據庫文件,只是表格。使用PHP將HTML表格解析爲數據庫格式

這是一個正常的表格。只是爲了澄清,是這樣的:

<table> 
<tbody> 
<tr> 
<td>ELEMENT 1</td> 
<td>ELEMENT2</td> 
<td>ELEMENT 3</td> 
<td>ELEMENT 4</td> 
</tr> 
</tbody> 
</table> 

我想這樣做的是創建該日期的數據庫,是元1的「身份證」,並使用該ID相關的其他信息。我不知道如何創建一個bucle來獲取該表中的所有元素,並將它們插入到數據庫中。

我在問的是,如果有一種方法來解析信息,所以我可以做我想做的。我並不是要求代碼將其插入數據庫,所以我應該如何解析這些信息。謝謝!

+0

您可以使用JavaScript來訪問元素,如果他們有'id's和/或在他們的標籤等信息。 – mavili

+1

這也是相關的:http://stackoverflow.com/questions/8144061/using-php-to-get-dom-element – mavili

+1

嗯,也許這DOMDocument的東西可能是有用的,在這種情況下,感謝mavili! – Jonhas

回答

1

你需要這樣做:

<?php 
    //Load the DOM Document 
    $doc = new DOMDocument(); 
    $doc->loadHTMLFile("filename.html"); 

    //Find td elements 
    $xpath = new DOMXPath($doc); 
    $query = '//your/path/to/table/tbody/tr/td'; 
    $entries = $xpath->query($query); 

    $id = $entries->item(0); 
    $item1 = $entries->item(1); 
    $item2 = $entries->item(2); 
    $item3 = $entries->item(3); 

    //You query here... 
?> 

參考文獻: DOM

+1

謝謝!我結束這樣做:包括'simple_html_dom.php'; $ html = file_get_html('http:/ ...'); foreach($ html-> find('tr')as $ tr) { ... – Jonhas