2014-10-05 3 views
1

Я использую API для получения профиля профиля пользователей. Звонок выглядит примерно так:Получить последний доступный URL

https://familysearch.org/platform/tree/persons/{$rid}/portrait?access_token={$_SESSION['fs-session']}&default=https://eternalreminder.com/dev/graphics/{$default_gender}_default.svg 

Эта ссылка работает только час, потому что токен сеанса пользователя истекает. Мне было интересно, есть ли способ получить последний возвращенный возвращаемый URL-адрес, который будет прямой ссылкой на изображение, поэтому я мог бы сохранить это в базе данных.

Я пробовал Google, но я не знаю, с чего начать.

Заранее благодарен!

+0

См http://stackoverflow.com/questions/724391/saving-image-from-php-url –

+0

@FrisoKluitenberg Не будет ли это загрузить файл на локальном компьютере пользователя? Я просто хочу сохранить прямой URL-адрес в базе данных. – blazerunner44

+0

Нет, файл получает содержимое для получения данных, file_put_content хранит его на сервере. Вы можете хранить вывод file_get_contents в поле mysql (двоичный blob) так же легко –

ответ

1

Я смог решить свою собственную проблему. Он делал перенаправление, чтобы получить изображение, и мне просто нужен этот URL. Вот мой код, который помог мне туда добраться.

$url="http://libero-news.it.feedsportal.com/c/34068/f/618095/s/2e34796f/l/0L0Sliberoquotidiano0Bit0Cnews0C12735670CI0Esaggi0Eper0Ele0Eriforme0Ecostituzionali0EChiaccherano0Ee0Eascoltano0Bhtml/story01.htm"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Must be set to true so that PHP follows any "Location:" header 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$a = curl_exec($ch); // $a will contain all headers 

$url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); // This is what you need, it will return you the last effective URL 

// Uncomment to see all headers 
/* 
echo "<pre>"; 
print_r($a);echo"<br>"; 
echo "</pre>"; 
*/ 

echo $url; // Voila