我正试图从Twitter上抓取一个图片网址,例如'https://pbs.twimg.com/media/BGZHCHwCEAACJ19.jpg:large'使用php。我发现以下php代码和file_get_contents工作但我不认为regurlar表达式匹配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;
?>
答案 0 :(得分:1)
您的正则表达式似乎缺少URI开头的一部分。它缺少'pbs'部分,无法确定是否为http或https。
preg_match('/((http|https):\/\/pbs.twimg.com\/[^:]+):/i', $twitter_page, $matches);
答案 1 :(得分: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