【问题标题】:Get id value with PHP Simple HTML DOM使用 PHP Simple HTML DOM 获取 id 值
【发布时间】:2013-10-31 09:42:35
【问题描述】:

我有这种情况:

<div class="listing_title">
    <strong>
      <a href="http://www.mywebsite.com/dectails23291.html" id="url_id_1977">
       Listing Title
      </a>
   </strong>
</div>

为了获得列表标题,我已经实现了这个代码:

$page = "http://www.mywebsite.com/listings.html";
$html = new simple_html_dom();
$html->load_file($pagina);

foreach($html->find('.listing_title') as $element)
    echo $element->first_child()->plaintext  . '<br>';

输出是:

Listing Title

现在我需要获取 id 值

url_id_1977

最好只有“1977”,清除“url_id_”,但我不知道。提前致谢!!

【问题讨论】:

  • 在 foreach 循环中不起作用,我收到此错误:尝试获取非对象的属性
  • 我需要在同一个 foreach 中获取 id 值结束打印,输出如下:Listing Title 1977

标签: php dom web-scraping


【解决方案1】:

将此添加到您的 foreach 循环中:

echo end(explode('_', $element-&gt;find('a', 0)-&gt;id));

要消除警告,您可以将 id 分配给变量:

$id = explode('_', $element->find('a', 0)->id);
echo $id[2];

或者,如果您的主播的id 始终以url_id_ 开头,则只需使用str_replace()

echo str_replace('url_id_', '', $element->find('a', 0)->id);

【讨论】:

  • 选择器工作得很好!唯一关于结束和爆炸的问题,因为我收到这个错误:严格标准:只有变量应该通过引用传递。但是您的代码(关于选择器)很棒!
【解决方案2】:
try this

foreach($html->find('*[class=listing_title] a') as $element)
    echo $element->id. '<br>';

【讨论】:

  • 使用此代码,我在输出中只得到列表标题,而不是 id 值
  • 抱歉这样尝试 foreach($html->find('*[class=listing_title]') as $element) echo $element->id. '
    ';
  • 抱歉我错过了 "a" 试试这个 foreach($html->find('*[class=listing_title] a') as $element) echo $element->id. '
    ';
猜你喜欢
  • 2014-02-07
  • 1970-01-01
  • 1970-01-01
  • 2014-08-22
  • 2013-01-25
  • 2012-08-12
  • 2012-04-08
  • 2019-10-22
  • 2016-04-21
相关资源
最近更新 更多