Пишу парсер для steam инвентаря.
Имеется: источник цен (огромный json файл с названием предмета и его ценой), инвентарь юзера.
Задача: Поиск соответствия предмета из инвентаря юзера с его ценой в json файле.
Проблема в том, что это может занимать очень долгое время (пару минут), даже если у юзера нужно оценить лишь 1 предмет из инвентаря, а может и вообще ничего не найти. Каким образом можно ускорить поиск совпадения?
На похожих сайтах инвентарь оценивается за пару секунд, несмотря на кол-во предметов.
Код:
public function index()
{
$id = Auth::user()->id;
$user = User::find($id);
$items = $this->steamInventory
->loadInventory($user->steamid, 570)->getInventoryWithDescriptions();
$price = file_get_contents('../public/v2.json');
$json = \GuzzleHttp\json_decode($price, true);
$value = $json['items'];
for ($p=0;$p < count($items);$p++){
$result[] = array(
'name' => $items[$p]['name'],
'price' => $value[$items[$p]['market_name']]['price'] ?? 'Цена не определена',
'icon' => $items[$p]['icon_url']
);
}
return $json = \GuzzleHttp\json_encode($result);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
У меня есть скрипты, которые я подключаю в файле functionsphp
использую OpenServer на windows, установил yii2-starter-kit, но не могу настроить Apache в htaccess