В папке music на хостинге лежал папки типа
Папка № 1
Папка № 2
...
Папка № N
В каждой папке свои аудио
Аудио № 1
Аудио № 2
...
Аудио № N
Как-то можно получить JSON файл из этих папок и файлов в виде
{
"music": [
{
"id": "1",
"Папка": "Папка № 1",
"Аудио": "Аудио № 1",
"url": "mysite.ru/music/Папка № 1/Аудио № 1.mp3"
},
{
"id": "2",
"Папка": "Папка № 1",
"Аудио": "Аудио № 2",
"url": "mysite.ru/music/Папка № 1/Аудио № 2.mp3"
},
{
"id": "3",
"Папка": "Папка № 1",
"Аудио": "Аудио № 3",
"url": "mysite.ru/music/Папка № 1/Аудио № 3.mp3"
},
{
"id": "4",
"Папка": "Папка № 2",
"Аудио": "Аудио № 1",
"url": "mysite.ru/music/Папка № 2/Аудио № 1.mp3"
},
{
"id": "5",
"Папка": "Папка № 2",
"Аудио": "Аудио № 2",
"url": "mysite.ru/music/Папка № 2/Аудио № 2.mp3"
},
{
"id": "6",
"Папка": "Папка № 2",
"Аудио": "Аудио № 3",
"url": "mysite.ru/music/Папка № 2/Аудио № 3.mp3"
},
{
"id": "7",
"Папка": "Папка № 3",
"Аудио": "Аудио № 1",
"url": "mysite.ru/music/Папка № 3/Аудио № 1.mp3"
},
{
"id": "8",
"Папка": "Папка № 3",
"Аудио": "Аудио № 2",
"url": "mysite.ru/music/Папка № 3/Аудио № 2.mp3"
},
{
"id": "9",
"Папка": "Папка № 3",
"Аудио": "Аудио № 3",
"url": "mysite.ru/music/Папка № 3/Аудио № 3.mp3"
}
]
}
Результат
"2014": {
"id": 2014,
"folder": "music/Певец_1",
"audio": "..",
"url": "https://site.ru/music/Певец_1/.."
},
"2015": {
"id": 2015,
"folder": "music/Певец_1",
"audio": ".",
"url": "https://site.ru/music/Певец_1/."
},
"2016": {
"id": 2016,
"folder": "music/Певец_1",
"audio": ".",
"url": "https://site.ru/music/Певец_1/Музыка № 1.mp3"
}
Вот примерно так можете сделать. А подробно о методах что есть здесь в коде можете прочитать тут.
$mp3_arr = array();
//$somePath ваща родительская директория
$somePath = 'Song';
$dirs = glob($somePath . '/*' , GLOB_ONLYDIR);
var_dump($dirs);
$id = 1;
foreach($dirs as $dir){
$results_array = array();
if (is_dir($dir))
{
if ($handle = opendir($dir))
{
while(($file = readdir($handle)) !== FALSE)
{
if ($file!="."&&$file!=".."){
$mp3_arr['music'][$id]["Папка"] = $dir;
$mp3_arr['music'][$id]["Аудио"] = $file;
$mp3_arr['music'][$id]["url"] = "mysite.ru/music/".$dir."/".$file;
$id++;
}
}
closedir($handle);
}
}
}
echo '<pre>';
var_dump($mp3_arr);
$mp3_json = json_encode($mp3_arr);
Здесь используется readdir
.
И он первые две записи возвращает .
и ..
1. `.` - это запись каталога для текущего каталога
2. `..` - является каталогом для текущего каталога на один уровень выше в иерархии
Или вот второй вариант с использованием glob для поиска песен в папках.
$mp3_arr = array();
//$somePath ваша родительская директория
$somePath = 'Song';
$dirs = glob($somePath . '/*' , GLOB_ONLYDIR);
var_dump($dirs);
$id = 1;
foreach($dirs as $dir){
$results_array = array();
if (is_dir($dir))
{
if ($handle = opendir($dir))
{
foreach(glob($dir.'/*.mp3') as $file){
$mp3_arr['music'][$id]["Папка"] = $dir;
$mp3_arr['music'][$id]["Аудио"] = $file;
$mp3_arr['music'][$id]["url"] = "mysite.ru/music/".$dir."/".$file;
$id++;
}
closedir($handle);
}
}
}
echo '<pre>';
var_dump($mp3_arr);
$mp3_json = json_encode($mp3_arr);
Фрилансер или Digital-агентство - Как сделать правильный выбор?
Что дает мне использование Doctrine и Eloquent кроме скорости разработки(помойму спорный аргумент) и всеядности к субд(здесь конечно да)И как обстаят...
Перелопатил кучу материала и других вопросов, но ответа так и не нашелЕсть вот такой вот код
В общем, начал изучать php и в ходе изучения решил поставить перед собой задачу, вывести на экран таблицу умноженияСоставил такой код:
Решил я написать модуль для одного движка (DLE) Но столкнулся с проблемой, можно ли выводить информацию из tpl файлов с помощью php? Если да, то как...