1

Twitter から画像の URL をスクレイピングしようとしています。次の 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

このようなものは 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 に答える
1

正規表現の URI の先頭部分が欠落しているようです。「pbs」の部分が欠落しており、http か https かを判断できませんでした。

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