【问题标题】:Goutte - get link from a td while iterating through columnsGoutte - 在遍历列时从 td 获取链接
【发布时间】:2019-05-31 19:43:41
【问题描述】:

我正在尝试从表格中获取文本和 href 的混合,最后一列包含 href 而其他列只是文本。迭代时如何获取文本和适当的href。

我有 html 表格,我想从表格中制作数组

$html = '<table>
<tr>
    <td>user1</td>
    <td>address1</td>
    <td>dob1</td>
    <td>status1</td>
    <td>link1</td>
</tr>
<tr>
    <td>user2</td>
    <td>address2</td>
    <td>dob2</td>
    <td>status2</td>
    <td>link2</td>
</tr>
<tr>
    <td>user3</td>
    <td>address3</td>
    <td>dob3</td>
    <td>status3</td>
    <td>link3</td>
</tr>
</table>

如您所见,最后一列是链接,而其他列是文本,我想提取文本和链接,以便我的数组看起来像这样

 array(
      "user1",
      "address1",
      "dob1",
      "status1",
      "<a href='link1'><img src='profile.jpg' /><a/>",
   ),
 array(
      "user2",
      "address2",
      "dob2",
      "status2",
      "<a href='link2'><img src='profile.jpg' /><a/>",
   ),
 array(
      "user3",
      "address3",
      "dob3",
      "status3",
      "<a href='link3'><img src='profile.jpg' /><a/>",
   )
)

我现在可以使用下面的这个函数从表格中获取文本

$table = $crawler->filter('table')->filter('tr')->each(function ($tr, $i) {
    return $tr->filter('td')->each(function ($td, $i) {
        return trim($td->text());
    });
});

但最后一列是一个链接,我如何使用 link() 捕获它?

【问题讨论】:

    标签: php goutte domcrawler


    【解决方案1】:

    你能在第二个循环中检查 $i 吗?所以如果 $i==3 这意味着函数应该返回链接()。

    【讨论】:

    • 正是我所需要的...谢谢
    猜你喜欢
    • 2020-01-23
    • 1970-01-01
    • 2015-04-01
    • 2017-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    相关资源
    最近更新 更多