80 lines
2.1 KiB
PHP

<?php
error_reporting(E_ERROR | E_WARNING | E_PARSE);
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
if(isset($_POST['getdir']) && !empty($_POST['getdir'])) {
$dir = $_POST['getdir'];
echo json_encode((listDir($dir[0],$dir[1])));
}
if(isset($_POST['rootdir']) && !empty($_POST['rootdir'])) {
echo json_encode('/Database'.'/');
}
function listDir($relroot,$section) {
$folder = getcwd().$relroot;
$paths = scandir($folder);
$ext = array("ext");
$mod = array("mod");
$size = array("size");
$paths = array_slice($paths,$section*100,100);
foreach ($paths as $dir) {
$realdir = $folder.'/'.$dir;
if(is_dir($realdir)) {
$ext[] = 'true';
$size[] = "- - - -";
} else {
$ext[] = 'false';
$size[] = human_filesize(filesize($realdir));
}
$mod[] = date ("F d, Y", filemtime($realdir));
}
$results[] = $paths;
$results[] = $ext;
$results[] = $mod;
$results[] = $size;
return $results;
}
function human_filesize($bytes, $decimals = 2) {
$sz = 'BKMGTP';
$factor = floor((strlen($bytes) - 1) / 3);
return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$sz[$factor].'B';
}
function scan_dir($path){
$ite=new RecursiveDirectoryIterator($path);
$bytestotal=0;
$nbfiles=0;
foreach (new RecursiveIteratorIterator($ite) as $filename=>$cur) {
$filesize=$cur->getSize();
$bytestotal+=$filesize;
$nbfiles++;
$files[] = $filename;
}
$bytestotal=number_format($bytestotal);
return array('total'=>$nbfiles,'size'=>$bytestotal,'files'=>$files);
}
$files = scan_dir('/home/discordo/public_html/subdomain/music_dir/Database');
$subtract = 0;
for($mp3 = 0; $mp3 <= 100; $mp3++) {
if (strpos($files['files'][$mp3], '.mp3') == false) {
if (isset($files['files'][$mp3])) {
unset($files['files'][$mp3]);
$subtract++;
};
};
};
$files['total'] = $files['total'] - $subtract;
$json = json_encode($files);
printf($json);