Preg_match图像网址与php标题中的元标记

时间:2013-09-21 08:25:09

标签: php regex preg-match instagram

我正在尝试使用php从Instagram网址中抓取图片网址。图片网址似乎包含在页面顶部的元标记中,如下所示:

<meta property="og:image" content="http://distilleryimage10.ak.instagram.com/9e4360c6220411e38abf22000a1f9bf5_7.jpg" />

由此我想返回内容部分,例如http://distilleryimage10.ak.instagram.com/9e4360c6220411e38abf22000a1f9bf5_7.jpg

我需要为多个图像执行此操作,因此即使网址发生更改,我也需要提取此图像。

到目前为止我的代码是

$page = file_get_contents('http://instagram.com/p/efH-NVOTAy/#');
preg_match("/og:image/", $page, $matches);
print_r($matches);

这会打印数组([0] =&gt; og:image)

这适用于匹配'og:image',并向我确认它可以在从file_get_contents返回的数据中找到此字符串,但我不知道如何从这一行返回url的跳跃?

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

/og:image"\s*content="([^"]+)"/

这会查找og:image,然后在其后面查找content,如果找到,则会捕获值(无论内部双引号"进入捕获组1。

所以你应该收到一个包含两个元素的匹配数组,第二个是URL。

Regex101 Demo

警告:一般不要使用正则表达式解析HTML,而是使用HTML解析器。