Добрый день господа, столкнулся с такой проблемой. Раньше делал парсер инвентаря пользователя, было все отлично. Теперь пытаюсь спарсить инвентарь, в итоге после 3й перезагрузки страници стим не отвечает, и начинает отдавать ответ только после минуты ожидания. Как быть? если сайтом будет пользоваться допустим человек 10, то инвентарь в таком случае вообще парситься не будет. Если что, контент беру так - file_get_contents('http://steamcommunity.com/profiles/'.$id.'/inventory/json/730/2'); Была мысль пускать запрос через ТОР, при каждом запросе меняя цепь, тем самым меняя IP адрес, но это же костыль.
Если бы вы прочитали код ошибки, всё бы сами поняли:
The request is a duplicate and the action has already occurred in the past, ignored this time (29)
Система знает, что вы недавно запрашивали точно этот ресурс и запрещает вам спамить её одинаковыми запросами.
Вам просто необходимо кешировать результаты всех запросов
Чтобы получить тело ответа при возникновении ошибки
нужно передать в file_get_contents
контекст с параметром:
$context = stream_context_create(array(
'http' => array('ignore_errors' => true),
));
$result = file_get_contents($uri, false, $context);
$data = json_decode($result, true);
if (!empty($data['error'])) {
throw new \Exception("SteamAPI Error: {$data['error']}");
}
ЗЫ:
Expires
заголовок у них шикарнейший:
Expires:Mon, 26 Jul 1997 05:00:00 GMT
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Ошибка Parse error: syntax error, unexpected $end in on line 48
Есть задача глобально контролировать то, что будет возвращаться приложением (laravel5/lumen)На примере контроллера, это может быть примерно так:
Переменная содержит текст формате html при выводе этой переменной в textarea, текст выводится вместе со всеми тегами, можно ли как то почистить...