Делал так .json файл перевел на массив через json_decode,для начало пробовал вводит прямо из массива 1 слово,всё пошло на ура,сделал так :
$descr = $obj->data[0]->items[1]->descr;
теперь мне нужно через foreach (или другой цикл рекомедуете) вводит все descr,но массив очень сложный не знаю что делать.
Изучил foreach можно вводит примерно так
$key=>$value
Но мой массив примерно такой
$key
$key
$value
Cам код сейчас :
<?php
$url = 'http://tv/schedule.json';
$contents = file_get_contents($url);
$obj = json_decode($contents);
$descr = $obj->data[0]->items[1]->descr;
$ruperevod = "(rus tilida)";
$pustoyprobel = "Iwlamadi";
if($descr == "/rus/")
{
$new_descr = str_replace ($descr,$ruperevod,$descr);
}
else
{
echo $pustoyprobel;
}
echo $new_descr,' ',$new_descr;
?>
Сам Json файл :
[url=]https://www.mtrk.uz/uz/api/mtrk/schedule.json[/url]
У тебя ведь items обьектов. Перебери его, там ключи будут от 0 ити.
primalmz, попробуй заменить эту строку
$obj = json_decode($contents);
на вот эту
$obj = json_decode($contents, true);
И тогда у тебя в переменной
$obj будет сохранён именно массив, а не объект.
# ДоХтор (31.07.2017 / 21:47)
primalmz, попробуй заменить эту строку $obj = json_decode($contents); на вот эту $obj = json_decode($contents, true); И тогда у тебя в переменной $obj будет сохранён именно массив, а не объект.
Тогда скрипт не работает,не знаю почему.
primalmz, Тогда стучать нужно как в массиве - [0][1]['descr']
Добавлено: 31.07.2017 / 22:17
# ROM (31.07.2017 / 22:14)
primalmz, Тогда стучать нужно как в массиве - [0][1]['descr']
Пожалуйста приведи пример,в примере моего кода
Добавлено: 31.07.2017 / 22:28
$descr = $obj->[0][1]['descr'];
но теперь дает ошибку.
# primalmz (31.07.2017 / 22:12)
Тогда скрипт не работает,не знаю почему.
Получай результат в массив, распечатывай этот массив, и смотри что тебе нужно, то и выбирай по его ключам
$url = 'https://www.mtrk.uz/uz/api/mtrk/schedule.json';
$arr = json_decode(file_get_contents($url), 1);
echo '<pre>'; var_dump($arr); echo '</pre>';
Добавлено: 31.07.2017 / 23:51
Да жопа какой то,(
Добавлено: 01.08.2017 / 00:05
foreach($obj['data'][0]['items'] as $key=>$duration){
echo '<pre>'.print_r($duration,1);
}
а тут теперь не работает $key=>$duration,тупо вводит $obj['data'][0]['items']
primalmz, Я же тебе говорю, ты какой то не логичный план составляешь
Пробуй, под свои нужды сам перепишешь))
if (!is_file('schedule.json')) {
$url = 'https://www.mtrk.uz/uz/api/mtrk/schedule.json';
file_put_contents('schedule.json', file_get_contents($url));
} else {
$url = 'schedule.json';
}
$contents = file_get_contents($url);
$obj = json_decode($contents, true);
foreach ($obj['data'][0] as $key => $val) {
if ($key != 'items') {
continue;
}
foreach ($val as $item) {
if (isset($item['descr']) && $item['descr'] == '/rus/') {
echo '(rus tilida)<br />';
} else {
echo 'Iwlamadi<br />';
}
}
}