Страница 2 из 2

Re: Чем разобрать строку

Добавлено: Пт мар 22, 2019 11:59 am
skysilver
Svetлая писал(а):
Пт мар 22, 2019 11:49 am
Правильно?
Почти. PHP_EOL не нужен при записи в свойство, это перенос на новую строку, чтобы при отладке красиво выводилось на странице, а не в кучу.

Код: Выделить всё

setGlobal("Vasy.wifi", $data->wifi);

Re: Чем разобрать строку

Добавлено: Пт мар 22, 2019 12:53 pm
Svetлая
Проверила, всё работает)).
Спасибо))

Re: Чем разобрать строку

Добавлено: Ср май 17, 2023 1:00 pm
KVN
Вдогонку вопрос ... :?:

Хочу получить данные с сайта https://bank.gov.ua/NBUStatService/v1/s ... e=EUR&json

Получаю ответ:
[
{
"r030":978,"txt":"Євро","rate":39.8104,"cc":"EUR","exchangedate":"17.05.2023"
}
]


Не знаю как побороть скобки [ ]

Вот мой код скрипта:
$data_exchange = json_decode(file_get_contents("https://bank.gov.ua/NBUStatService/v1/s ... e=EUR&json"));
$txt_exchange = $data_exchange->cc;
setGlobal('Exchange.txt', $txt_exchange);


Подскажите как правильно?!

Re: Чем разобрать строку

Добавлено: Ср май 17, 2023 2:01 pm
odinvolk
квадратные скобки это массив

получантся что это массив в массиве

разбирается примерно так
СпойлерПоказать

Код: Выделить всё

$array = array(
    '0' => array(
        'r030' => '978',
        'txt' => 'Євро',
        'rate' => '39,8104',
        'cc' => 'EUR',
        'exchangedate' => '17.05.2023'
    )
);

Код: Выделить всё

$data_exchange = file_get_contents("https://bank.gov.ua/NBUStatService/v1/s ... e=EUR&json");
$json = json_decode($data_exchange, true);

$r030 = $json['r030'][0]['0']; // вот нулевой параметр в нулевом массиве
$txt = $json['txt'][0]['1'];
$rate = $json['rate'][0]['2'];
$cc = $json['cc'][0]['3'];
$exchangedate = $json['exchangedate'][0]['4'];

setGlobal('Exchange.txt', $r030); // и так далее

Re: Чем разобрать строку

Добавлено: Ср май 17, 2023 2:19 pm
odinvolk
https://snipp.ru/tools/parser-json

попробуй онлайн конвертер чтобы понять

Re: Чем разобрать строку

Добавлено: Ср май 17, 2023 3:07 pm
KVN
Спасибо за помощь, но пока не получается ...

1. значения свойств все равно пустые
2. разбор json помечает красным &json в конце и пишет что Ничего не найдено

Re: Чем разобрать строку

Добавлено: Ср май 17, 2023 4:23 pm
Logrus
https://www.php.net/manual/ru/function.json-decode.php
обрати внимание на второй аргумент и не надо в примере выше декодировать дважды, далее переменную можно отдебажить вставив в дебмеш

Re: Чем разобрать строку

Добавлено: Ср май 17, 2023 4:30 pm
KVN
Всем спасибо за помощь, разобрался!

Вот решение:
$query = "https://bank.gov.ua/NBUStatService/v1/s ... e=EUR&json";
$data = getURL($query);
$json = json_decode($data,true);

$r030 = $json['0']['r030'];
$txt = $json['0']['txt'];
$rate = $json['0']['rate'];
$cc = $json['0']['cc'];
$exchangedate = $json['0']['exchangedate'];

setGlobal('Exchange.rate', $rate);
setGlobal('Exchange.txt', $txt);
setGlobal('Exchange.cc', $cc);
setGlobal('Exchange.exchangedate', $exchangedate);


и вот иностранный товарищ очень помог https://www.youtube.com/watch?v=a86VTVrvXd8

Re: Чем разобрать строку

Добавлено: Ср май 17, 2023 7:21 pm
Logrus
промежуточные переменные излишни, можно с сг сразу, если так смотреть то и после джейсон_декоде можно не создавать новую переменную, а переписать значение в старой дата
будет и чуть шустрее и меньше памяти съест, ну и сам код хранимый и загружаемый из бд уменьшится

Re: Чем разобрать строку

Добавлено: Чт май 18, 2023 11:21 am
KVN
Спасибо, но для начинающего и это прогресс )))