@mIndix

Как выводить только text поле?

$curl = curl_init();
...
$response = curl_exec($curl);
json_decode($response);
		echo mb_convert_encoding($response, 'windows-1251', 'utf-8');//вывод всех полей
		print $response->{'text'};//нерабочий вывод поля text
curl_close($curl);

Вывод всех полей
{"messages":[{"id":"","author_id":0,"created":,"content":{"text":"[text] Ля-ля-ля"},"type":"system","direction":"in"},
Мне нужно, чтобы выводилось только поле text - {"text":"[text] Ля-ля-ля"}. Подскажите как это реализовать?
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Ремарки:
$curl = curl_init();
...
$response = curl_exec($curl);
json_decode($response); // куда попал результат выполнения функции - загадка
echo mb_convert_encoding($response, 'windows-1251', 'utf-8'); /* так как нифига не сделали, 
нифига не получили. По стуи здесь просто ответ сервера, полученный из curl. 
Кроме того, предполагалось же, что это будет объект, ну, судя по строчке ниже. Делать echo объекту, 
еще и "конвертируя" его в какой-то формат, идея не из лучших.*/
print $response->{'text'}; /* нерабочий вывод поля text, так как у нас там и не объект, 
и зачем print, а не echo? Или везде принт, или везде ечо, если разницу вы все равно не знаете.
Так же не обязательно здесь использовать {'text'}, 
так как вы уже знаете имя свойства, $response->text достаточно.*/
curl_close($curl);
Ответ написан
Комментировать
SERGK393
@SERGK393
Программист
Можно использовать array_column
$curl = curl_init();
...
$response = curl_exec($curl);
$json = json_decode($response);
    echo mb_convert_encoding($response, 'windows-1251', 'utf-8');//вывод всех полей
    $messages = array_column($json->messages, 'content');
    $messages = array_column($messages, 'text');
    print implode(';', $messages);
curl_close($curl);

Здесь с помощью implode пишутся все значения text через точку с запятой (";")
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы