将HTML tr元素拆分为PHP数组

时间:2014-02-06 02:19:30

标签: php html arrays html-table

我已经发布了这个帖子,但从来没有很好地解释过,所以我删除了它并重写了它。

我的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',因为这是第一个TR阵列上第二个TD元素的值

我不确定我是否能很好地解释这一点,但这就是我想要做的事情

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分: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 );