简体   繁体   English

阅读全部 <td> 使用PHP的标签

[英]Read all <td> tags using PHP

I have html output from some API, and I want to read all tags from the output. 我有一些API的html输出,我想从输出中读取所有标签。

Input to PHP script: 输入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>

I want output from the script to be in the form of array as mentioned below: 我希望脚本的输出采用数组形式,如下所述:

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

.
.
. so on...

)

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

With the goal of grabbing the @src attribute value for every <img> within a <td> , while keeping the proper td index, something like this should do it. 为了获取<td>每个<img>@src属性值,同时保留适当的td索引,应该执行类似的操作。

Example: 例:

$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);

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,
)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM