2

对不起,如果我的问题是基本的,因为我不熟悉 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);
            }
        }
    }
}

?>

谢谢您的答复....

4

3 回答 3

8

我修改了弗朗西斯科的代码:

<?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
        }
    ]
}
于 2017-05-27T17:01:54.037 回答
6

也许尝试这样的事情?

<?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);
}

?>
于 2013-04-08T02:07:01.030 回答
3

您可以使用此代码命名数组并设置相同的键:

<?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));
}


?>
于 2015-11-25T11:43:56.897 回答