2013-03-27 5 views
1

Я пытаюсь очистить URL-адрес изображения из твиттера, например. 'https://pbs.twimg.com/media/BGZHCHwCEAACJ19.jpg:large', используя php. Я нашел следующий PHP-код и file_get_contents работает, но я не думаю, что выражение regurlar соответствует URL-адресу. Можете ли вы помочь отладить этот код? Заранее спасибо.Использование PHP для очистки 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; 
?> 

ответ

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]; 
?> 

Response является

https://pbs.twimg.com/media/BGZHCHwCEAACJ19.jpg 
+0

Спасибо это работает :) –

1

Оказывается, что регулярное выражение отсутствует часть начала URI , Ему не хватало части «pbs» и не удалось определить, есть ли http или https.

preg_match('/((http|https):\/\/pbs.twimg.com\/[^:]+):/i', $twitter_page, $matches);