Есть магазин со страницей новинок: http://www.igromagaz.ru/buy_pc_games/key/igra_skoro_vyydet/ Раньше я получал её содержимое через: Код (PHP): $content = file_get_contents('http://igromagaz.ru/buy_pc_games/key/igra_skoro_vyydet/index.php'); И потом расчленял переменную $content регулярками, чтобы получить нужный мне контент - горизонтальный блок картинок с ссылками на товары. Когда админы сайта это просекли, они перекрыли мне кислород - уж не знаю как, либо урезали пермишшены на файл, либо что-то дописали в htaccess, либо вообще забанили обращения с моего сайта. Существует ли ещё какой-то альтернативный способ вырвать кусок страницы со стороннего сайта, помимо file_get_contents?
Код (Text): PHP Warning: in file /portal/blocks/new_games.php on line 3: file_get_contents(http://www.igromagaz.ru/buy_pc_games/key/igra_skoro_vyydet/): failed to open stream: HTTP request failed! HTTP/1.1 503 Service Unavailable
Я не ворую контент, копирайты в картинках сохранены и ссылки ведут на их же магазин. Просто я зареген по партнёрке на этом сайте, и суть "кражи" состоит в том, чтобы получить на своем сайте блок новинок, который обновляется автоматически: http://maestro-magnifico.ru/testdir/igromagaz/ А доступ мне залочили потому, что мой блок создаёт нагрузку на их сайт. Ибо одно обновление страницы на моём ресурсе от каждого пользователя = один запрос к странице новинок на их сайте. Добавлено спустя 5 минут 43 секунды: Посоны, подскажите как реализовать кэширование? Чтобы file_get_contents выполнялась всего раз в сутки, например. Можно прямо в двух словах, я умею гуглить.
ну и дурак засунь её в скрипт отдельный, а полученные данные пихай в БД или файл. а из бд уже рисуй свои новинки.
а обновление на крон привязать чтоли и пойти списаться с чуваками с того сайта, повиниться что бы тупой и попросить учинить какой-нить доступ к этому делу человеческий.
Запилил кэширование без всяких нубских кронов. И доступ мне благополучно разлочили. Код (PHP): <?php $time_sec=time(); $time_file=filemtime($_P['a_path'].'logs/blocks/new_games.php'); $time=$time_sec-$time_file; if ($time > 86400) { //86400 секунд = 24 часа $content = file_get_contents('http://www.igromagaz.ru/buy_pc_games/key/igra_skoro_vyydet/'); file_put_contents($_P['a_path'].'logs/blocks/new_games.php', $content); } ?>