Форматировать и разделить CSV / JSON на PHP - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь использовать этот API для заполнения моей базы данных mysql, и мне нужно обновить, если появятся «new itens», и обновить все цены.У меня уже есть внутренняя структура для этих сценариев, но мне нужно отделить имя от цены каждого элемента.

API (вы можете открыть в браузере): https://api.csgofast.com/price/all

Как я могу сделать это, например, лучшим способом?

Я пытался взорвать на ":", но есть такие случаи:

"Prismatic: Miasmatic Grey": 39.48,

Так что взрыв неработа.

Спасибо за совет.

Код:

protected function populateItems()
{
    $items = json_decode(file_get_contents(API_URL));
    foreach($items as $item) {
        Item::create([
            'name' => $i[0],
            'price' => $i[1]
        ]);
    }
    die('end');
}

И я тоже это попробовал, но на ":"

protected function populateItems()
{
    $body = file_get_contents(API_URL);
    $items_parsed = str_replace('{', '', $body);
    $items_converted = str_replace('}', '', $items_parsed);
    $items = str_getcsv($items_converted);
    foreach($items as $item) {
        // Item::create([
            // 'name' => $i[0],
            // 'price' => $i[1]
        // ]);
    }
    echo 'Fim da execução.';
    die;
}
ничего не получилось

Ответный ответ:

object(stdClass)#470 (15689) { ["Sticker | Counter Logic Gaming (Foil) | MLG 
Columbus 2016"]=> float(2.14) ["Sticker | RUBINO (Foil) | Cologne 2016"]=> 
float(1.26) ["P2000 | Granite Marbleized (Well-Worn)"]=> float(0.01) ["★ Bayonet 
| Fade (Minimal Wear)"]=> float(226.55)

1 Ответ

0 голосов
/ 24 мая 2018

Я только что получил проблему.Я не использовал для каждого значения $ key => $, поэтому я решил так:

$items = json_decode(file_get_contents(API_URL));
    foreach($items as $item => $price) {
        Item::create([
            'name' => $item,
            'price' => $price
        ]);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...