Получение информации с другого сайта

Статус
В этой теме нельзя размещать новые ответы.
1. Конечный код, не вижу данного значения:

Код:
$data=request('https://eds.mosreg.ru/api/claims?status=EXPIRED_RETURN_TO_DD');
echo $data;
$data_array=json_decode($data, true);
echo "<pre>";
print_r($data_array);
echo "</pre>";
echo 'Результат';
echo $data_array['value']['content'][0]['name'];
echo $data_array['value']['content'][0]['author'];
echo $data_array['value']['content'][0]['description'];
echo $data_array['value']['content'][0]['authorEmail'];
echo $data_array['value']['content'][0]['phone'];
echo $data_array['value']['content'][0]['category']['name'];

ну как это? вторая строка echo $data;

2. Заменять нечего. В результате значения пишутся в одну строку, слитно между значениями. Т.е. Нужно, как то вставить. Или имеет ввиду вставить между строками: echo $data_array['value']['content'][0][company]['name']; и какой то код написать, что бы он менял данный результат на ";"? Как правильно прописать?

здесь похоже я вас неправильно понял.
сделайте вместо
echo 'Результат';
echo $data_array['value']['content'][0]['name'];
echo $data_array['value']['content'][0]['author'];
echo $data_array['value']['content'][0]['description'];
echo $data_array['value']['content'][0]['authorEmail'];
echo $data_array['value']['content'][0]['phone'];
echo $data_array['value']['content'][0]['category']['name'];

такой вывод:

echo 'Результат';
$res = "";
foreach($data_array['value']['content'][0] as $item)
$res = $res.$item.";";
echo $res;


4. fwrite($fp, 'строка 1');
fwrite($fp, 'строка 2'); -
не совсем понятно, что за строки?

это запись в файл текста 'строка 1' и с новой строки 'строка 2'
если хотите записать туда что-то свое = передавайте туда вместо 'строка 1' вашу переменную, например
fwrite($fp, $data_array['value']['content'][0]['name']);

в предыдущем пункте я специально написал через переменную fwrite($fp, $data_array['value']['content'][0]['name']); так как догадался что вы хотите вывести ее в файл
fwrite($fp, $res);
 
ну как это? вторая строка echo $data;



здесь похоже я вас неправильно понял.
сделайте вместо
echo 'Результат';
echo $data_array['value']['content'][0]['name'];
echo $data_array['value']['content'][0]['author'];
echo $data_array['value']['content'][0]['description'];
echo $data_array['value']['content'][0]['authorEmail'];
echo $data_array['value']['content'][0]['phone'];
echo $data_array['value']['content'][0]['category']['name'];

такой вывод:

echo 'Результат';
$res = "";
foreach($data_array['value']['content'][0] as $item)
$res = $res.$item.";";
echo $res;




это запись в файл текста 'строка 1' и с новой строки 'строка 2'
если хотите записать туда что-то свое = передавайте туда вместо 'строка 1' вашу переменную, например
fwrite($fp, $data_array['value']['content'][0]['name']);

в предыдущем пункте я специально написал через переменную fwrite($fp, $data_array['value']['content'][0]['name']); так как догадался что вы хотите вывести ее в файл
fwrite($fp, $res);

Почему то выводится вся информация с блока, а как отдельные данные выбрать? несколько раз прописать

PHP:
echo 'Результат';
$res = "";
foreach($data_array['value']['content'][0]['name'] as $item);
foreach($data_array['value']['content'][0]['author'] as $item);
foreach($data_array['value']['content'][0]['description'] as $item);
foreach($data_array['value']['content'][0]['phone'] as $item);
foreach($data_array['value']['content'][0]['category']['name'] as $item);
foreach($data_array['value']['content'][0]['authorEmail'] as $item);
res = $res.$item.";";
echo $res;

Верно?

UP: нет, так не проходит. Ошибка 500. Подскажите, как можно выбрать определенные элементы из блока?
 
Последнее редактирование:
Если убрать:
PHP:
echo $data;
То ничего не меняется. Если убрать:
PHP:
echo $data;
$data_array=json_decode($data, true);
То JSON исчезает, остается только слово "Результат", а остальных данных нет.

тогда помимо echo $data;
уберите var_dump($data_array); или print_r($data_array); - у вас где-то ниже выводится на экран.

если будут проблемы - сразу киньте сюда весь код чтобы 2 раза за пивом не бегать :)
 
UP: нет, так не проходит. Ошибка 500. Подскажите, как можно выбрать определенные элементы из блока?
а я для кого писал ?
Код:
//Если вложенность, то так
echo $json->value->content[0]->id;
 
тогда помимо echo $data;
уберите var_dump($data_array); или print_r($data_array); - у вас где-то ниже выводится на экран.

если будут проблемы - сразу киньте сюда весь код чтобы 2 раза за пивом не бегать :)
Поправил сообщение выше)

И еще вопрос: Почему то выводится только значения по одной заявке (последней) , а по остальным нету.

Код полностью:

PHP:
<? function request($url,$post = 0){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookie.txt');
curl_setopt($ch, CURLOPT_POST, $post!==0 );
if($post)
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
request( 'https://eds.mosreg.ru/login',
array(
'login-form-email'=>'Логин',
'login-form-password'=>'Пароль',
));
$data=request('https://eds.mosreg.ru/api/claims?status=SOLVED');
$data_array=json_decode($data, true);
echo 'Результат;';
$res = "";
foreach($data_array['value']['content'][0] as $item)
$res = $res.$item.";";
echo $res;

Результат:
Код:
Результат;100916;1;;13103-20-06-2019-28;Москва, Вернадского, 32;;+7900123456789;Виктория;agent@yandex.ru;agent@yandex.ru;Добрый день. Подскажите пожалуйста сроки отключения горячей воды в доме;20 июня 2019 10:31;22 июня 2019 10:31;20 июня 2019 10:54;Array;Array;SOLVED;Array;Array;Array;Array;Житель;

Еще почему то после адреса лишний значок ";"

а я для кого писал ?
Код:
//Если вложенность, то так
echo $json->value->content[0]->id;

Вставил echo $json->value->content[0]->name; Вместо foreach($data_array['value']['content'][0] as $item) Не выводит значения.
 
Код:
<?

function request($url,$post = 0)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url );
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');
    curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookie.txt');
    curl_setopt($ch, CURLOPT_POST, $post!==0 );
    if($post)
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
}
request('https://eds.mosreg.ru/login',
    array(
        'login-form-email'        =>    'Логин',
        'login-form-password'    =>    'Пароль',
    ));
$data        = request('https://eds.mosreg.ru/api/claims?status=SOLVED');
$data_array    = json_decode($data, true);

echo 'Результат;';
echo implode(';',$data_array['value']['content'][0]);


правда так и не понял зачем вы спрашивали про запись в файл...

P.S. Используйте пробелы и табуляторы при оформлении кода
 
Код:
<?

function request($url,$post = 0)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url );
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');
    curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookie.txt');
    curl_setopt($ch, CURLOPT_POST, $post!==0 );
    if($post)
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
}
request('https://eds.mosreg.ru/login',
    array(
        'login-form-email'        =>    'Логин',
        'login-form-password'    =>    'Пароль',
    ));
$data        = request('https://eds.mosreg.ru/api/claims?status=SOLVED');
$data_array    = json_decode($data, true);

echo 'Результат;';
echo implode(';',$data_array['value']['content'][0]);


правда так и не понял зачем вы спрашивали про запись в файл...

P.S. Используйте пробелы и табуляторы при оформлении кода
В фаил я еще ничего не записал. Я хочу пока получить результат по ссылке. Затем уже записать результат, который меня удовлетворяет в фаил.

И еще вопрос: Почему то выводится только значения по одной заявке (последней) , а по остальным нету.
 
И еще вопрос: Почему то выводится только значения по одной заявке (последней) , а по остальным нету.

потому что вы не вывели весь JSON а только для случая одной заявки - вам и дали код для этого случая.

предполагаю что у вас массив заявок надо разобрать так:

Код:
<?

function request($url,$post = 0)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url );
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');
    curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookie.txt');
    curl_setopt($ch, CURLOPT_POST, $post!==0 );
    if($post)
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
}
request('https://eds.mosreg.ru/login',
    array(
        'login-form-email'        =>    'Логин',
        'login-form-password'    =>    'Пароль',
    ));
$data        = request('https://eds.mosreg.ru/api/claims?status=SOLVED');
$data_array    = json_decode($data, true);

//echo 'Результат;';       //не думаю что эта надпись вам нужна
foreach($data_array['value']['content'] as $item)
{
    echo implode(';',$item);
    echo "\n";
}
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху