0

我使用简单的 html dom 解析器从 html 字符串中获取一些数据。
我需要从具有特定 css 类的表中返回 TD 的值,每个 TD 作为数组元素
我尝试了这个 cod,但它给出了胎儿错误

<?php
include('classes/simple_html_dom.php');
$html = str_get_html('<table class="pages_navigator">
<tr>
<th style="width:50px;">ID </th>
<th>Business </th>
<th style="width:70px;">Category</th>
<th style="width:50px;">Phone </th>
<th style="width:70px;">State</th>
<th style="width:70px;">City</th>
<tr class="users_tr">
<td>3571</td>
<td>Premium GD</td>
<td>2063199876</td>
<td>Washington</td>
<td>Seattle</td>
<td>3703</td>
</tr>
</table>');
$tds = $html->find('table.pages_navigator')->find('td') ;
print_r($tds);
?>

然后我尝试了

<?php
    include('classes/simple_html_dom.php');
    $html = str_get_html('<table class="pages_navigator">
    <tr>
    <th style="width:50px;">ID </th>
    <th>Business </th>
    <th style="width:70px;">Category</th>
    <th style="width:50px;">Phone </th>
    <th style="width:70px;">State</th>
    <th style="width:70px;">City</th>
    <tr class="users_tr">
    <td>3571</td>
    <td>Premium GD</td>
    <td>2063199876</td>
    <td>Washington</td>
    <td>Seattle</td>
    <td>3703</td>
    </tr>
    </table>');
    $result = array();
    foreach($html->find('tr.users_tr') as $e){
    $result[] = $e->plaintext . '<br>';
    }
    print_r($result);
?>

最后一个效果很好,但它将所有 TD;s 作为单个字符串而不是每个 td 作为数组元素?var_dump 结果

Array ( 
[0] => 3571 Premium GD 2063199876 Washington Seattle 3703 
)
4

1 回答 1

2

更改您的查询

foreach($html->find('tr.users_tr') as $e){

foreach($html->find('tr.users_tr td') as $e){

这应该允许您遍历所有 td,而不是获取整行的纯文本。

于 2013-07-17T04:43:37.473 回答