2014-02-06 75 views
0

我已經發布了這個線程,但從未解釋得很好,所以我刪除了它並重寫了它。將HTML tr元素拆分爲PHP數組

我的php腳本發送一個cURL請求到一個網站,然後輸出一個HTML表格,然後我將使用那個有7個TR元素的表格,每個TR元素裏面有6個TD元素。

這意味着,HTML表在技術上已編碼的頁面上,我想要做的是每個TR分成單獨的PHP陣列,與TD的訪問通過這把鑰匙。

因此,例如:

Table
-- tr1
----td
----td
----td
----td
----td
----td
-- tr2
----td
----td
----td
----td
----td
----td

那麼我就要能夠做到: echo $TRArray[1][3]
那麼這將呼應 'TD',因爲這是第二個TD元素的值第一TR陣列

上我不知道如果我解釋這很好,但是這是我希望能夠做

任何幫助將不勝感激!

+0

你能不能給我們一個全線您從網站獲得的數據的?難道不應該是這個樣子​​數據​​數據 ...... ? – TimSPQR

+0

@TimSPQR是的,它就是這樣。運輸署有班,但是運輸署沒有。 –

回答

2

確保您有PHP支持PHP的DOM:

$export = array(); 
$dom = new DOMDocument(); 
libxml_use_internal_errors(true); 
$dom->loadHTML($html); 
libxml_clear_errors(); 

$xpath = new DOMXPath($dom); 

$tr_no = 0; 
foreach($xpath->evaluate('//tr') as $sel){ 
    $export[$tr_no] = array(); 
    $td_no = 0; 
    foreach($sel->childNodes as $td){ 
     if(strtolower($td->tagName) == 'td'){ 
      $innerHTML = ''; 
      foreach ($td->childNodes as $child){ 
       $innerHTML .= $td->ownerDocument->saveHTML($child); 
      } 
      $export[$tr_no][$td_no] = $innerHTML; 
      $td_no++; 
     } 
    } 
    $tr_no++; 
} 

var_dump($export); 
+0

謝謝,當我在我的筆記本電腦上時,我會試一試:-) –

+0

完美地工作,謝謝! –

+0

@MarkEriksson請您將答案設置爲正確答案嗎?如果它適合你。 – Zac