Как вернуть json из функции php

написали класс, который использует встроенную функцию PHP DirectoryIterator который показывает структуру папок, подобную этой

root
   |__subfolder
   |          |_mp3 
   |          |_png
   |__subfolder2
              |_mp3
              |_mp3 

Вот мой класс

 <?php
  $list = array();

 $dir = new DirectoryIterator('/opt/lampp');
 foreach ($dir as $fileinfo)
 {
 if ($fileinfo->isFile())
  {
    //echo $fileinfo->getBasename() . "\n";
   //echo $fileinfo->getBasename('.jpg') . "\n";
  }
  else
   { //create object with two fields
            $list3 = array( 'name'=> $fileinfo->getFilename(),
                            'type'=> $fileinfo->getType(),
                            'date'=> $fileinfo->getMTime(),
                            'size'=> $fileinfo->getSize());
             array_push($list, $list3);



    }


        $return_array = array('files'=>$list);
        echo json_encode(  $return_array)
     }
     ?>

написали echo json_encode, но формат строки, похоже, написан неправильно

вот представление строкового формата вывода, я использую онлайн-просмотрщик json для проверки

 {"files":[{"name":"info","type":"dir","date":1491647493,"size":4096}]}     {"files":[{"name":"info","type":"dir","date":1491647493,"size":4096},{"name":"pear","type":"dir","date":1491647422,"size":4096}]}{"files":[{"name":"info","type":"dir","date":1491647493,"size":4096},{"name":"pear","type":"dir","date":1491647422,"size":4096},

используйте json_encode, чтобы преобразовать его в json: D

JimL 30.03.2018 11:30

@JimL, спасибо за ответ, как я могу заархивировать это, я новичок в json ...?

Mr.mubanga 30.03.2018 11:32

@MunimMunna, спасибо за ответ, где мне не хватает запятых? Помогите мне понять

Mr.mubanga 30.03.2018 13:40

Моя ошибка, у вас не пропущены запятые, но вы кодируете подпапки, то есть $list_array, вам нужно вставить все $return_array в массив $list, а затем закодировать массив $list за пределами for-loop внизу.

Munim Munna 30.03.2018 13:48
Стоит ли изучать 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
5
1 811
1

Ответы 1

использовать json_encode()

<?php
  $list = array();

 $dir = new DirectoryIterator('/opt/lampp');
 foreach ($dir as $fileinfo)
 {
 if ($fileinfo->isFile())
  {
    //echo $fileinfo->getBasename() . "\n";
   //echo $fileinfo->getBasename('.jpg') . "\n";
  }
  else
   { //create object with two fields
            $list3 = array( 'name'=> $fileinfo->getFilename(),
                            'type'=> $fileinfo->getType(),
                            'date'=> $fileinfo->getMTime(),
                            'size'=> $fileinfo->getSize());
             array_push($list, $list3);



    }


        $return_array = array('files'=>$list);
        echo json_encode($return_array);

 }


?>

@Hassan, спасибо за ваш ответ, строки, возвращенные json_encode ($ return_array), неправильно отформатированы как строка json

Mr.mubanga 30.03.2018 11:53

в каком формате вы можете показать мне, какой формат вы хотите

R B 30.03.2018 12:00

спасибо за ваш ответ, формат, который мне нужен, это {"data": [{"data": "audio", "children": [{"data": {"title": "juicy.mp3"}, "attr ": {" href ":" audio / juicy.mp3 "," id ":" 1239 "}," icon ":" images \ /mp3-icon.gif "},

Mr.mubanga 30.03.2018 12:05

теперь, какой формат типа вы получаете для этого json_encode ($ return_array)

R B 30.03.2018 12:11

{"data": [{"name": "info", "type": "dir", "date": 1491647493, "size‌": 4096}]} {"data": [{"‌ name" : "info", "type": ‌ "dir", "date": 1491647‌ 493, "size": 4096},

Mr.mubanga 30.03.2018 12:16

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

R B 30.03.2018 12:19

когда я тестирую его с помощью онлайн-просмотра json, он говорит неправильный формат ...? помогите мне понять

Mr.mubanga 30.03.2018 12:29
w3schools.com/js/js_json_intro.asp прочитать эту статью
R B 30.03.2018 12:32

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