2014-02-06 39 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