我正在使用simple_html_dom从另一个网站收集数据,我想知道如何仅对作为a元素的数据执行foreach。

$url = 'example.com';
html2 = file_get_html($url);
$download2 = $html2->find('table',1);
$data['ep_table'] = $download2->outertext;

上面的代码返回以下内容。
<table style="height: 341px;">
<tbody>
<tr style="height: 31px;">
   <td style="height: 31px; width: 26px;">#</td>
   <td style="height: 31px; width: 196px;">Song</td>
   <td style="text-align: right; height: 31px; width: 82px;">Download</td>
</tr>
<tr style="height: 62px;">
   <td style="height: 62px; width: 26px;">1</td>
   <td style="height: 62px; width: 196px;">미쳐가지고 (I’m Crazy)</td>
   <td style="text-align: right;height: 62px;width: 82px;">
      <a href="http://example.com/South-Club-im-crazy/"
         target="_blank"
         rel="noopener">
       <strong>
      <button class="button_rbox" title="" type="button">
      <span class="cnt">Download</span>
      </button>
      </strong>
     </a>
   </td>
</tr>
<tr style="height: 31px;">
  <td style="height: 31px; width: 26px;">2</td>
  <td style="height: 31px; width: 196px;">Someday</td>
  <td style="text-align: right; height: 31px; width: 82px;">
     <a href="http://example.com/South-Club-someday/"
        target="_blank"
        rel="noopener">
       <strong>
        <button class="button_rbox" title="" type="button">
         <span class="cnt">Download</span>
        </button>
       </strong>
      </a>
  </td>
</tr>
<tr style="height: 93px;">
  <td style="height: 93px; width: 26px;">3</td>
  <td style="height: 93px; width: 196px;">안녕 (Hi/Bye)</td>
  <td style="text-align: right; height: 93px; width: 82px;">
     <a href="http://example.com/South-Club-hi/"
        target="_blank"
        rel="noopener">
       <strong>
       <button class="button_rbox" title="" type="button">
         <span class="cnt">Download</span>
       </button>
       </strong>
     </a>
   </td>
</tr>
<tr style="height: 31px;">
   <td style="width: 26px; height: 31px;">4</td>
   <td style="width: 196px; height: 31px;">빗방울 (Raindrop)</td>
   <td style="text-align: right; width: 82px; height: 31px;">
       <a href="http://example.com/South-Club-raindrop/"
          target="_blank" rel="noopener">
         <strong>
         <button class="button_rbox" title="" type="button">
         <span class="cnt">Download</span></button>
         </strong>
      </a>
   </td>
</tr>
</tbody>
</table>

我怎样才能做foreach,它只搜索$data['ep_table']的html,而不搜索我们解析的整个页面中的a元素?
我试过了,但没有运气。
foreach($data['ep_table']->find('a') as $track){
    print $link = $track->href;
}

最佳答案

您试图对纯文本而不是dom对象使用find()。你应该这样做:

$url  = 'example.com';
html2 = file_get_html($url);

foreach( $html2->find('table', 1)->find('a') as $track)
{
    echo $track->href;
}

值得指出的是find('table', 1)假定目标表是检索到的标记中的第二个<table>元素。

07-24 09:37
查看更多