【问题标题】:Parse HTML iFrame SRC in PHP with SimpleHTMLDOM使用 SimpleHTMLDOM 在 PHP 中解析 HTML iFrame SRC
【发布时间】:2018-06-25 01:32:36
【问题描述】:

这就是我的 HTML 的样子:

<div class="academy_page">
    <span class="academy_page_header">Academy:</span>
    <div>
        <div class="videopage_block" align="center">
            <iframe class="videopage_video" src="//player.vimeo.com/video/67353453644?title=0&amp;byline=0&amp;portrait=0" width="300" height="150" frameborder="0" allowfullscreen="allowfullscreen"></iframe>
            <div class="academy_text">How to Ride a Skateboard</div>
        </div>
        <div class="videopage_block" align="center">
            <iframe class="videopage_video" src="//player.vimeo.com/video/9435345343?title=0&amp;byline=0&amp;portrait=0" width="300" height="150" frameborder="0" allowfullscreen="allowfullscreen"></iframe>
            <div class="academy_text">How to Build a Skateboard</div>
        </div>
</div>

这就是我的解析方式:

foreach($html->find('div.academy_page') as $element){

        foreach($element->find('div.videopage_block') as $dulce) {

            $item['title'] = $dulce->find('div.academy_text', 0)->plaintext;
            $item['vimeo_url'] = $dulce->find('iframe')->src;

            $returnArray[] = $item;
        }
     }

这是我在 json 中的结果:

[
  {
    "title": "How to Ride a Skateboard",
    "vimeo_url": null
  },
  {
    "title": "How to Build a Skateboard",
    "vimeo_url": null
  }
]

如何获取 iFrame SRC?

我也试过$item['vimeo_url'] = $dulce-&gt;find('.videopage_video')-&gt;plaintext;,但什么也没有

【问题讨论】:

    标签: php html dom


    【解决方案1】:

    我猜你可以使用:

    $dom = new DOMDocument();
    $dom->loadHTML($html);
    $xpath = new DOMXpath($dom);
    foreach ($xpath->query("//div[@class='videopage_block']") as $node){
    
        echo $node->getElementsByTagName('iframe')[0]->getAttribute("src");
        echo $node->getElementsByTagName('div')[0]->nodeValue;
    }
    

    更新:

    获取视频ID:

    $iframe_src = $node->getElementsByTagName('iframe')[0]->getAttribute("src")
    $video_id = preg_replace('%.*?video/(\d+)\?.*%i', '$1', $iframe_src);
    

    【讨论】:

    • 如何将其合并到我已有的内容中?如果这是我唯一需要的东西,这似乎是获取 src 的一种简单方法
    • 好的,我会对我的答案做一些调整,1''
    • 欣赏佩德罗
    • 佩德罗!你是一个救生员。这 100% 给了我我需要的东西。还有一个问题,你知道我怎样才能返回 src 的数字部分吗?我只需要67353453644 的一部分//player.vimeo.com/video/67353453644?title=0&amp;amp;byline=0&amp;amp;portrait=0。如果您能指出我正确的方向,我将不胜感激!标记为答案
    • @Walker 请查看更新后的答案。总帐
    【解决方案2】:

    你可以直接在SimpleHTMLDOM中指向src属性

      $iframe = $html->find( 'iframe' , 1 )->src ;
    

    参考official manual

    【讨论】:

      猜你喜欢
      • 2015-01-18
      • 2016-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多