Эхо конкретных узлов JSON в PHP

Я сделал файл RSS в JSON https://www.dannny0117.com/.well-known/api/news2.php

Он работает тем, что возвращает результат в формате JSON из источника RSS. Теперь я хочу напечатать только несколько элементов из этого с помощью PHP echo.

Согласно JSON, мне нужно взять channel, item, title и guid, поскольку это то, что я хочу вывести.

Мне нужны только заголовок 1-го поста и ссылка, но мой код просто не подберет его, потому что я не совсем знаю, как получить к нему доступ.

Вот код, который я использую, который, я думаю, должен быть echo, но не работает:

<?php 

$url = "https://www.dannny0117.com/.well-known/api/news2.php";
$content = file_get_contents($url);
$json = json_decode($content, true);

$title = $content['channel']['item'][0]['title'];
$link= $content['channel']['item'][0]['guid'];

echo $title , $link;

?>

Это не проблема с кодировкой или символом Unicode, основная проблема в том, что мой код НЕ МОЖЕТ читать элементы из необходимого JSON.

вы можете опубликовать свой json файл, пожалуйста?

Lyes 10.12.2018 05:12

Добавьте соответствующий код и выход к вашему вопросу. Вопросы, требующие помощи по отладке («почему этот код не работает?»), должны включать желаемое поведение, конкретная проблема или ошибка и самый короткий код, необходимый, чтобы воспроизвести его в самом вопросе. Вопросы без четкая постановка проблемы другим читателям не пригодятся. См .: Как создать минимальный, полный и проверяемый пример.

elixenide 10.12.2018 05:19

Кроме того, вам действительно не следует использовать папку /.well-known для своего собственного кода. Для хорошего объяснения того, что это за папка, см. serverfault.com/a/795474/201883 и iana.org/assignments/well-known-uris/well-known-uris.xhtml.

elixenide 10.12.2018 05:20

Возможная полезная ссылка: - stackoverflow.com/questions/6606713/…

Anant Kumar Singh 10.12.2018 05:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
336
2

Ответы 2

вы можете проверить эту ссылку здесь, она о предопределенных константах, обычно, когда вы имеете дело с не латинскими буквами, у вас может быть такой беспорядок. попробуйте использовать JSON_UNESCAPED_UNICODE и это решит вашу проблему. вы можете использовать что-то вроде этого:

$json_output = json_decode($content, true, JSON_UNESCAPED_UNICODE);

как вы сказали, это не сработало, поэтому попробуйте добавить это:

$options = array('http' => array(
         'header' => 'Accept-Charset: UTF-8'
         )
      ); $context = stream_context_create($options);

$url = "https://www.dannny0117.com/.well-known/api/news2.php"; 
$content= file_get_contents($url, false, $context); 
$json = json_decode($content, true,JSON_UNESCAPED_UNICODE);

@ Dannny0117 Пожалуйста, проверьте обновленный ответ, я добавил фрагмент кода, который добавляет тип контента в процесс получения, чтобы вы могли в первую очередь получить данные в правильной кодировке

Mohammed Omer 11.12.2018 02:05

Вы сделали 2 ошибки:

1) У вас есть символы UTF-8 в вашей строке json.

2) У вас есть вывод строки json_decode() в переменной $json, но вы используете $content.

Используйте приведенный ниже код.

$url = "https://www.dannny0117.com/.well-known/api/news2.php";
$content = file_get_contents($url);
$enc = mb_detect_encoding($content);

if ($enc == 'UTF-8') {
  $content = preg_replace('/[^(\x20-\x7F)]*/','', $content);    
}    

$json = json_decode($content,true);
$title = $json['channel']['item'][0]['title'];
$link  = $json['channel']['item'][0]['guid'];
echo "<pre>";
print_r([$title , $link]);

Другие вопросы по теме