2010-11-17 1 views
1

Я делаю сценарий для себя, чтобы перечислять мои любимые фильмы. Поэтому я почти закончил, но не могу сохранить маленький плакат из IMDb с php. Я использовал функцию file_put_contents(), но он создает файл jpeg 0kb. вот код, который я использовал:Сохранение постеров с IMDb с php

file_put_contents('./posters/t0120689.jpg', file_get_contents('http://ia.media-imdb.com/images/M/MV5BMTUxMzQyNjA5MF5BMl5BanBnXkFtZTYwOTU2NTY3._V1._SX214_CR0,0,214,314_.jpg')); 

Конечно, это не сработало. Затем я использовал cURL:

$ch = curl_init(
file_put_contents('./posters/t0120689.jpg', file_get_contents('http://ia.media-imdb.com/images/M/MV5BMTUxMzQyNjA5MF5BMl5BanBnXkFtZTYwOTU2NTY3._V1._SX214_CR0,0,214,314_.jpg'); 
$fp = fopen('./posters/t0120689.jpg', 'wb'); 
curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_exec($ch); 
curl_close($ch); 
fclose($fp); 

И он тоже не работал. Это пример страницы фильма с IMDb: http://www.imdb.com/title/tt0120689/

ответ

3

Запуск этого работал для меня на моем Macbook:

<?php 
file_put_contents('./t0120689.jpg', file_get_contents('http://ia.media-imdb.com/images/M/MV5BMTUxMzQyNjA5MF5BMl5BanBnXkFtZTYwOTU2NTY3._V1._SX214_CR0,0,214,314_.jpg')); 
?> 

При размещении этого на сервере где-нибудь, то PHP INI настройки allow_url_include должен быть установлен в для того, чтобы вы могли получать запросы за пределами своего домена.

+0

Я запускаю его со своим компьютером. И я могу получить html-коды URL-адреса с файлом_get_contents. – Valour

+0

Это тоже мое предположение. Работал отлично и на моем конце. +1 –

+0

Да, я использовал его, чтобы сохранить его в другом месте, и это сработало. Но я скриптую свой сайт с помощью Codeigniter и имеет файл .htaccess. Как отключить правила перезаписи для папки/плакатов? – Valour