javascript — возвращает данные PHP как объект JSON.

У меня есть сценарий PHP, который должен вернуть 3 вещи для всех файлов, содержащихся в определенном каталоге.

  1. имя файла
  2. размер файла
  3. Время создания файла

Я могу повторить эти три значения для каждого файла, но я хочу вернуть все эти данные в формате JSON. Каков наилучший способ преобразовать все эти данные в формат JSON?

function listAllFiles($dir)
{
$format = "d/m/y h:m";
$filesInfo;
if (is_dir($dir))
{
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) !== false)
{
if ($file != "." && $file != "..")
{
echo findFileSize($dir.'/'.$file)."      ".date($format, filemtime($dir.'/'.$file))."     ";
echo $file.'<br>';

}

}
}
closedir($dh);


}
else {
print 'folder not found';
}
}

-1

Решение

функции

  1. имя файла

использование glob() найти файлы в каталоге

  1. размер файла

использование filesize() найти размер файла

  1. Время создания файла

использование filectime() найти время последнего создания файла

Каков наилучший способ преобразовать все эти данные в формат JSON?

использование json_encode() преобразовать массив PHP в массив JSON

Пример кода

function listAllFiles($dir){
if(!isdir($dir)) { print "Folder not found"; return; }

$files = glob($dir);
$arr = array();
foreach($files as $file){
$file = array();

//Get filename
$file["name"] = $file;

//Get filesize
$file["size"]= filesize($file);

//Get file creation time
$file["creation_time"] = filectime($file);

array_push($arr, $file);
}

$json = json_encode($arr);
return $json;
}

echo listAllFiles("/folder/");
1

Другие решения

В PHP есть две простые функции json json_encode() а также json_decode()

json_encode() преобразует массив PHP или объект в строку JSON, поэтому создайте массив или объект, содержащий все ваши данные, а затем отобразите результат json_encode() вернуться к вызывающему приложению.

function listAllFiles($dir) {

$results = array();
$results['error'] = false;

$format = "d/m/y h:m";
$filesInfo;
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if ($file != "." && $file != "..") {

// create an object to hold data for this file
$o = new stdClass();
$o->filesize = findFileSize($dir.'/'.$file)
$o->filedate = date($format, filemtime($dir.'/'.$file));
$o->filename = $file;

// put this object into the results array
$results[] = $o;
}
}
}
closedir($dh);
} else {
$results['error'] = true;
$results['err_msg'] = 'folder not found';
}

return $results;
}


$result = listAllFiles('a/b/c');
echo json_encode($result);
0

По вопросам рекламы [email protected]