Использование системы в различных ситуациях, вопросы программирования сценариев.
Модератор: immortal
skysilver
Сообщения: 3006 Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Контактная информация:
Сообщение
skysilver » Пт мар 22, 2019 11:59 am
Svetлая писал(а): Пт мар 22, 2019 11:49 am
Правильно?
Почти. PHP_EOL не нужен при записи в свойство, это перенос на новую строку, чтобы при отладке красиво выводилось на странице, а не в кучу.
Svetлая
Сообщения: 240 Зарегистрирован: Вс май 06, 2018 11:36 pm
Контактная информация:
Сообщение
Svetлая » Пт мар 22, 2019 12:53 pm
Проверила, всё работает)).
Спасибо))
KVN
Сообщения: 89 Зарегистрирован: Ср ноя 14, 2018 12:27 pm
Откуда: UA
Сообщение
KVN » Ср май 17, 2023 1:00 pm
Вдогонку вопрос ...
Хочу получить данные с сайта
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);
Подскажите как правильно?!
Мой
CONNECT
Ubuntu Linux 16.04.5 LTS, Источник обновлений ядра: Мастер
Acer Aspire One D270
odinvolk
Сообщения: 52 Зарегистрирован: Ср май 31, 2017 3:06 am
Откуда: [email protected]
Сообщение
odinvolk » Ср май 17, 2023 2:01 pm
квадратные скобки это массив
получантся что это массив в массиве
разбирается примерно так
Код: Выделить всё
$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); // и так далее
Последний раз редактировалось
odinvolk Чт май 18, 2023 11:54 am, всего редактировалось 1 раз.
KVN
Сообщения: 89 Зарегистрирован: Ср ноя 14, 2018 12:27 pm
Откуда: UA
Сообщение
KVN » Ср май 17, 2023 3:07 pm
Спасибо за помощь, но пока не получается ...
1. значения свойств все равно пустые
2. разбор json помечает красным &json в конце и пишет что Ничего не найдено
Мой
CONNECT
Ubuntu Linux 16.04.5 LTS, Источник обновлений ядра: Мастер
Acer Aspire One D270
KVN
Сообщения: 89 Зарегистрирован: Ср ноя 14, 2018 12:27 pm
Откуда: UA
Сообщение
KVN » Ср май 17, 2023 4:30 pm
Всем спасибо за помощь, разобрался!
Вот решение:
$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
Мой
CONNECT
Ubuntu Linux 16.04.5 LTS, Источник обновлений ядра: Мастер
Acer Aspire One D270
Logrus
Сообщения: 2113 Зарегистрирован: Пт апр 07, 2017 12:20 pm
Сообщение
Logrus » Ср май 17, 2023 7:21 pm
промежуточные переменные излишни, можно с сг сразу, если так смотреть то и после джейсон_декоде можно не создавать новую переменную, а переписать значение в старой дата
будет и чуть шустрее и меньше памяти съест, ну и сам код хранимый и загружаемый из бд уменьшится
Telegram |
Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с
10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) )))
Спасибо
KVN
Сообщения: 89 Зарегистрирован: Ср ноя 14, 2018 12:27 pm
Откуда: UA
Сообщение
KVN » Чт май 18, 2023 11:21 am
Спасибо, но для начинающего и это прогресс )))
Мой
CONNECT
Ubuntu Linux 16.04.5 LTS, Источник обновлений ядра: Мастер
Acer Aspire One D270