1

我正在尝试使用 php从 twitter 上抓取图像网址,例如“ https://pbs.twimg.com/media/BGZHCHwCEAACJ19.jpg:large ”。我发现以下 php 代码和 file_get_contents 正在工作,但我认为正则表达式与 url 不匹配。你能帮助调试这段代码吗?提前致谢。

这是来自 twitter 的片段,其中包含图像:

<div class="media-gallery-image-wrapper">
     <img class="large media-slideshow-image" alt="" src="https://pbs.twimg.com/media/BGZHCHwCEAACJ19.jpg:large" height="480" width="358">
 </div>

这是php代码:

<?php
    $url = 'http://t.co/s54fJgrzrG';
    $twitter_page = file_get_contents($url);
    preg_match('/(http:\/\/p.twimg.com\/[^:]+):/i', $twitter_page, $matches);
    $imgURL = array_pop($matches); 
    echo $imgURL;
?>
4

2 回答 2

1

您的正则表达式似乎缺少 URI 开头的部分。它缺少“pbs”部分,无法确定是 http 还是 https。

preg_match('/((http|https):\/\/pbs.twimg.com\/[^:]+):/i', $twitter_page, $matches);
于 2013-03-27T22:49:59.727 回答
1

像这样的东西应该提供一个 URL。

<?php
    $url = 'http://t.co/s54fJgrzrG';
    $twitter_page = file_get_contents($url);
    preg_match_all('!http[s]?:\/\/pbs\.twimg\.com\/[^:]+\.(jpg|png|gif)!i', $twitter_page,$matches);
    echo $img_url=$matches[0][0];
?>

回应是

https://pbs.twimg.com/media/BGZHCHwCEAACJ19.jpg
于 2013-03-27T23:02:23.880 回答