使用PHP读取所有<td>标签

阿努巴夫

我有一些API的html输出,我想从输出中读取所有标签。

输入到PHP脚本:

<table bgcolor="white" border="1" cellpadding="0" cellspacing="0" height="290" width="450" bordercolor="dodgerblue" align="center" class="txt">
   <tbody>
      <tr>
         <td>
            <table border="0" cellpadding="0" cellspacing="0" height="288" width="448" bgcolor="#ffffff" bordercolor="darkgray" class="txt">
               <tbody>
                  <tr>
                     <td align="middle"><img height="18" src="/assets/images/dn1.gif" width="28"></td>
                     <td align="middle"></td>
                     <td align="middle"></td>
                     <td align="middle"></td>
                     <td align="middle"></td>
                     <td align="middle"></td>
                     <td align="middle"></td>
                     <td align="middle"><img height="18" src="/assets/images/up1.gif" width="28"></td>
                     <td align="middle"><img height="18" src="/assets/images/dn1.gif" width="28"></td>
                     <td align="middle"></td>
                     <td align="middle"></td>
                     <td align="middle"></td>
                     <td align="middle"></td>
                     <td align="middle"></td>
                     <td align="middle"></td>
                     <td align="middle"><img height="18" src="/assets/images/up1.gif" width="28"></td>
                  </tr>
                  <tr>
                     <td align="middle"></td>
                     <td align="middle"><img height="18" src="/assets/images/dn1.gif" width="28"></td>
                     <td align="middle"></td>
                     <td align="middle"><strong><img src="/assets/images/5.gif" width="28" height="18"></strong></td>
                     <td align="middle"></td>
                     <td align="middle"></td>
                     <td align="middle"><img height="18" src="/assets/images/up1.gif" width="28"></td>
                     <td align="middle"><strong><img src="/assets/images/4.gif" width="28" height="18"></strong></td>
                     <td align="middle"></td>
                     <td align="middle"><img height="18" src="/assets/images/dn1.gif" width="28"></td>
                     <td align="middle"></td>
                     <td align="middle"></td>
                     <td align="middle"><strong><img src="/assets/images/3.gif" width="28" height="18"></strong></td>
                     <td align="middle"></td>
                     <td align="middle"><img height="18" src="/assets/images/up1.gif" width="28"></td>
                     <td align="middle"></td>
                  </tr>
               </tbody>
            </table>
         </td>
      </tr>
   </tbody>
</table>

我希望脚本的输出采用数组形式,如下所述:

array(
[0] => First td content
[1] => Second td content

.
.
. so on...

)

我尝试了这个http://www.phpclasses.org/package/3022-PHP-Parse-HTML-tables-and-extract-data-into-arrays.html,但是它不起作用...

用户3942918

为了获取a内@src每个属性的值,同时保留适当的td索引,应该执行类似的操作。<img><td>

例子:

$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);

$tds = $xpath->query('//td[not(descendant::td)]');
$output = [];

foreach ($tds as $td) {
    $data = null;
    $sources = $xpath->query('.//img/@src', $td);
    foreach ($sources as $src) {
        $data = $src->value;
    }

    $output[] = $data;
}

var_export($output);

输出:

array (
    0 => '/assets/images/dn1.gif',
    1 => NULL,
    2 => NULL,
    3 => NULL,
    4 => NULL,
    5 => NULL,
    6 => NULL,
    7 => '/assets/images/up1.gif',
    8 => '/assets/images/dn1.gif',
    9 => NULL,
    10 => NULL,
    11 => NULL,
    12 => NULL,
    13 => NULL,
    14 => NULL,
    15 => '/assets/images/up1.gif',
    16 => NULL,
    17 => '/assets/images/dn1.gif',
    18 => NULL,
    19 => '/assets/images/5.gif',
    20 => NULL,
    21 => NULL,
    22 => '/assets/images/up1.gif',
    23 => '/assets/images/4.gif',
    24 => NULL,
    25 => '/assets/images/dn1.gif',
    26 => NULL,
    27 => NULL,
    28 => '/assets/images/3.gif',
    29 => NULL,
    30 => '/assets/images/up1.gif',
    31 => NULL,
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章