Goutte - получить ссылку с тд при переборе столбцов - PullRequest
0 голосов
/ 05 января 2019

Я пытаюсь получить смесь текста и 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());
    });
});

но последний столбец является ссылкой, как мне перехватить его с помощью ссылки ()?

1 Ответ

0 голосов
/ 05 января 2019

вы можете проверить по $ i во втором цикле? так что если $ i == 3, это означает, что функция должна вернуть link ().

...