Извините, если мой вопрос является основным, потому что я не знаком с php и json. Я создал файл php, который перечисляет каталог на моем сервере и должен печатать результат как JSON. Итак, как я могу это сделать?
Вот мой код для отображения файлов в каталоге:
<?php $dir = "picture/"; if(is_dir($dir)){ if($dh = opendir($dir)){ while(($file = readdir($dh)) != false){ if($file == "." or $file == ".."){ } else { echo $file."<br />"; //echo json_encode($file); } } } } ?>
Благодарю за ваш ответ….
Я модифицировал код francisco:
<?php header('Content-Type: application/json'); $dir = "./"; //path $list = array(); //main array if(is_dir($dir)){ if($dh = opendir($dir)){ while(($file = readdir($dh)) != false){ if($file == "." or $file == ".."){ //... } else { //create object with two fields $list3 = array( 'file' => $file, 'size' => filesize($file)); array_push($list, $list3); } } } $return_array = array('files'=> $list); echo json_encode($return_array); } ?>
Результат:
{ "files": [{ "file": "element1.txt", "size": 10 }, { "file": "element2.txt", "size": 10 } ] }
Может, попробуй что-нибудь вроде этого?
<?php $dir = "picture/"; $return_array = array(); if(is_dir($dir)){ if($dh = opendir($dir)){ while(($file = readdir($dh)) != false){ if($file == "." or $file == ".."){ } else { $return_array[] = $file; // Add the file to the array } } } echo json_encode($return_array); } ?>
Вы можете использовать этот код для имени массива и для установки того же ключа:
<?php $dir = "../uploads"; if(is_dir($dir)){ if($dh = opendir($dir)){ while(($file = readdir($dh)) != false){ if($file != "." and $file != ".."){ $files_array[] = array('file' => $file); // Add the file to the array } } } $return_array =array('name_array' => $files_array); exit (json_encode($return_array)); } ?>