Страница 2 из 2
Re: Чем разобрать строку
Добавлено: Пт мар 22, 2019 11:59 am
skysilver
Svetлая писал(а): ↑Пт мар 22, 2019 11:49 am
Правильно?
Почти. PHP_EOL не нужен при записи в свойство, это перенос на новую строку, чтобы при отладке красиво выводилось на странице, а не в кучу.
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
Спасибо, но для начинающего и это прогресс )))