Minor
Постоялец
- Регистрация
- 16 Авг 2012
- Сообщения
- 260
- Реакции
- 111
fwrite — Бинарно-безопасная запись в файл
Для просмотра ссылки Войдиили Зарегистрируйся
Для просмотра ссылки Войди
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
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'];
2. Заменять нечего. В результате значения пишутся в одну строку, слитно между значениями. Т.е. Нужно, как то вставить. Или имеет ввиду вставить между строками: echo $data_array['value']['content'][0][company]['name']; и какой то код написать, что бы он менял данный результат на ";"? Как правильно прописать?
4. fwrite($fp, 'строка 1');
fwrite($fp, 'строка 2'); - не совсем понятно, что за строки?
=foreach($data_array['value']['content'][0] as $item)
$res = $res.$item.";";
$res = implode (';',$data_array['value']['content'][0]);
ну как это? вторая строка 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);
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;
Если убрать:
То ничего не меняется. Если убрать:PHP:echo $data;
То JSON исчезает, остается только слово "Результат", а остальных данных нет.PHP:echo $data; $data_array=json_decode($data, true);
а я для кого писал ?UP: нет, так не проходит. Ошибка 500. Подскажите, как можно выбрать определенные элементы из блока?
//Если вложенность, то так
echo $json->value->content[0]->id;
Поправил сообщение выше)тогда помимо echo $data;
уберите var_dump($data_array); или print_r($data_array); - у вас где-то ниже выводится на экран.
если будут проблемы - сразу киньте сюда весь код чтобы 2 раза за пивом не бегать
<? 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;
<?
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]);
В фаил я еще ничего не записал. Я хочу пока получить результат по ссылке. Затем уже записать результат, который меня удовлетворяет в фаил.Код:<? 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 'Результат;'; //не думаю что эта надпись вам нужна
foreach($data_array['value']['content'] as $item)
{
echo implode(';',$item);
echo "\n";
}