Получение списка файлов в JSON

107
23 августа 2019, 19:40

На хостинге есть папка, в которой есть другие папки с аудио. Нужно в json файле получить список файлов в таком виде:

{
  "audios": [
    {
      "id": 1,
      "folder": "site_music/Папка1",
      "audio": "Аудио1.mp3",
      "url": "https://site.ru/site_music/Папка1/Аудио1.mp3"
    },
    {
      "id": 2,
      "folder": "site_music/Папка1",
      "audio": "Аудио2.mp3",
      "url": "https://site.ru/site_music/Папка1/Аудио2.mp3"
    },
    {
      "id": 3,
      "folder": "site_music/Папка2",
      "audio": "Аудио1.mp3",
      "url": "https://site.ru/site_music/Папка2/Аудио1.mp3"
    }
  ]
}

Есть скрипт, который возвращает json, но он немножко не в том, виде что нужно.

Вот скрипт:

<?php
$mp3_arr = array();
$dirs = glob($somePath . 'site_music/*' , GLOB_ONLYDIR);
$id = 1;
foreach($dirs as $dir) {
    if (is_dir($dir))
    {
        if ($handle = opendir($dir))
        {
            while(($file = readdir($handle)) != false)
            {
                if ($file!="."&&$file!=".."){
                    $mp3_arr['audios'][$id]["id"] = $id;
                    $mp3_arr['audios'][$id]["folder"] = $dir;
                    $mp3_arr['audios'][$id]["audio"] = $file;
                    $mp3_arr['audios'][$id]["url"] = "https://site.ru/".$dir."/".$file;
                    $id++;
                }
            }
            closedir($handle);
        }
    }
}
$mp3_json = json_encode($mp3_arr);
print_r($mp3_json);
?>

Вот результат как возвращается json:

{
  "audios": {
    "1": {
      "id": 1,
      "folder": "site_music/Папка1",
      "audio": "Аудио1.mp3",
      "url": "https://site.ru/site_music/Папка1/Аудио1.mp3"
    },
    "2": {
      "id": 2,
      "folder": "site_music/Папка1",
      "audio": "Аудио2.mp3",
      "url": "https://site.ru/site_music/Папка1/Аудио2.mp3"
    },
    "3": {
      "id": 3,
      "folder": "site_music/Папка2",
      "audio": "Аудио1.mp3",
      "url": "https://site.ru/site_music/Папка2/Аудио1.mp3"
    }
  }
}

Как сделать так, чтобы возвращался json как в первом варианте?

READ ALSO
Как обновить access token и загрузить видео на youtube?

Как обновить access token и загрузить видео на youtube?

Как обновить маркер доступа (с помощью маркера обновления) и загрузить видео на youtube?

104
Перенос socket сервера на yii2

Перенос socket сервера на yii2

Всем хорошего времени сутокНачал разбираться с сокетами

111
Авторизация на сайте посредством curl

Авторизация на сайте посредством curl

Авторизируюсь на сайте через cURL записываю куки в файл

93