使用PHP简单的HTML DOM Parser获取Vine视频网址和图像

时间:2013-07-09 18:30:45

标签: php php-5.3 simple-html-dom

所以我喜欢使用PHP Simple HTML DOM Parser来获取图像网址和视频网址。

http://simplehtmldom.sourceforge.net/

这是一个示例藤蔓

https://vine.co/v/bjHh0zHdgZT

所以我需要从URL中获取此信息。表单图片网址:

<meta property="twitter:image" content="https://v.cdn.vine.co/v/thumbs/8B474922-0D0E-49AD-B237-6ED46CE85E8A-118-000000FFCD48A9C5_1.0.6.mp4.jpg?versionId=mpa1lJy2aylTIEljLGX63RFgpSR5KYNg">

和视频网址

<meta property="twitter:player:stream" content="https://v.cdn.vine.co/v/videos/8B474922-0D0E-49AD-B237-6ED46CE85E8A-118-000000FFCD48A9C5_1.0.6.mp4?versionId=ul2ljhBV28TB1dUvAWKgc6VH0fmv8QCP">

我只想采用这些元标记的内容。如果有人可以帮助真正欣赏它。感谢

1 个答案:

答案 0 :(得分:1)

不是使用你指出的lib,而是在这个例子中使用本机PHP DOM,它应该可以工作。

这是我为类似的东西创建的一个小课程:

<?php

class DomFinder {
  function __construct($page) {
    $html = @file_get_contents($page);
    $doc = new DOMDocument();
    $this->xpath = null;
    if ($html) {
      $doc->preserveWhiteSpace = true;
      $doc->resolveExternals = true;
      @$doc->loadHTML($html);
      $this->xpath = new DOMXPath($doc);
      $this->xpath->registerNamespace("html", "http://www.w3.org/1999/xhtml");
    }
  }

  function find($criteria = NULL, $getAttr = FALSE) {
    if ($criteria && $this->xpath) {
      $entries = $this->xpath->query($criteria);
      $results = array();
      foreach ($entries as $entry) {
        if (!$getAttr) {
          $results[] = $entry->nodeValue;
        } else {
          $results[] = $entry->getAttribute($getAttr);
        }
      }
      return $results;
    }
    return NULL;
  }

  function count($criteria = NULL) {
    $items = 0;
    if ($criteria && $this->xpath) {
      $entries = $this->xpath->query($criteria);
      foreach ($entries as $entry) {
        $items++;
      }
    }
    return $items;
  }

}

要使用它,您可以尝试:

$url = "https://vine.co/v/bjHh0zHdgZT";
$dom = new DomFinder($url);
$content_cell = $dom->find("//meta[@property='twitter:player:stream']", 'content');
print $content_cell[0];