[英]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索引,应该执行类似的操作。
$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,
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.