【问题标题】:getting img src within a link在链接中获取 img src
【发布时间】:2014-06-07 02:44:52
【问题描述】:

我在检索作为链接一部分的图像的 src 时遇到问题。例如,我想检索标签之间的 img 的 src。 <a href="/video1234/the_vid"><img src="http://example.com/picture1234.jpg" id="pic_1234" /></a> 我需要对页面上的几个布局相同的链接执行此操作。所以到目前为止我尝试的是这样的:

    $dom = new DOMDocument;

    @$dom->loadHTML($html);

    $i = 0;
    $links = $dom->getElementsByTagName('a');
    //Get images
foreach ($links as $link){
    $test = $link->getAttribute('href');
    if (strpos($test,'/video') !== false) { 
        $XV_IMG[$i] = $link->nodeValue;
        $i++;
    }
}

如果链接不只包含一个 img 标签,而是包含纯文本,它就可以正常工作。有没有办法获取src?

【问题讨论】:

  • 你想怎么retrieve the src of the img between the tag?在警报中发送还是什么?
  • 只是将示例中为 example.com/picture1234.jpg 的 src 存储在数组 $XV_IMG[$i]
  • src 是一个属性。只需执行您对 href 所做的操作即可获取它。
  • 网站上有很多图片我只需要从这些链接中检索图片的来源

标签: php html


【解决方案1】:

像这样在节点上继续使用 getElementsByTagName

foreach ($link->getElementsByTagName('img') as $img) {
  $XV_IMG[] = $img->getAttribute('src');
}

【讨论】:

    【解决方案2】:

    尝试使用 preg_match_all

    $html=  '<a href="/video1234/the_vid"><img src="http://example.com/picture1234.jpg" id="pic_1234" /></a>
    <a href="/video1224/the_vid"><img src="http://example.com/picture1224.jpg" id="pic_1224" /></a>
    <a href="/video1434/the_vid"><img src="http://example.com/picture1434.jpg" id="pic_1434" /></a>
    <a href="/video1554/the_vid"><img src="http://example.com/picture1554.jpg" id="pic_1554" /></a>
    <a href="/video1334/the_vid"><img src="http://example.com/picture1334.jpg" id="pic_1334" /></a>';
    
    preg_match_all('/<a href="(.*)"><img src="(.*)" id="pic_[0-9]{1,7}" \/><\/a>/i',$html,$out);
    unset($out[0]);
    unset($out[1]);
    print_r($out);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-09
      • 2023-03-28
      • 2017-06-23
      • 1970-01-01
      相关资源
      最近更新 更多