具有JSON输出的高级PHP目录

时间:2015-06-25 07:46:51

标签: php json

我目前正在开发一个PHP脚本,我可以将其用于我的移动应用程序,连接到我们的服务器并获取JSON数据作为连接的响应。

我创建了一个非常简单的PHP目录,它将输出JSON作为响应:

<?php

// An array of the file names
$directory = array();

//Open directory
$dir = opendir("./");

//List files in directory
while (($file = readdir($dir)) !== false)
{
    $directory[] = $file;
}
closedir($dir);

echo json_encode($directory);
?>

但是,我正在寻找(如果可能的话)从这个脚本中获取更多功能,但由于我对PHP相对较新,我不完全确定如何获取我想要使用的数据:

  • 文件名
  • 文件类型
  • 文件大小
  • 修改日期/时间
  • 创建日期/时间
  • 创建文件的用户
  • url to the file

是否也可以以某种方式识别响应是文件还是文件夹?由于..会转到另一个目录&amp;为每个输出的文件分配一个id?

2 个答案:

答案 0 :(得分:1)

文件名

你已经在你的$ file变量

中得到了它

文件类型

取决于您对文件类型的含义,但您可以使用stat()(不推荐使用此函数)获取(猜测)MIME类型,或者使用FileInfo PECL扩展(http://php.net/manual/en/ref.fileinfo.php)获得更好。

文件大小

使用$info = stat($file); echo "File size: " . $info['size']; 功能(http://php.net/manual/en/function.stat.php)。

stat()

修改日期/时间

再次使用$info = stat($file); echo "Last modified: " . date("Y-m-d H:i:s", $info['mtime']);

filemtime()

echo "Last modified: " . date("Y-m-d H:i:s", filemtime($file));

filectime()

创建日期/时间

使用$ctime= filectime($file); echo "Created: " . date("Y-m-d H:i:s", $ctime); (获取文件的inode更改时间)。在Windows上,这将返回创建的时间,在Linux上它将返回更改时间(大多数Linux文件系统不记录创建的时间)。

fileowner()

创建文件的用户

在Linux上,您可以通过$owner_id = fileowner($file); 获取文件所有者:

stat()

或者再次通过多功能的$info = stat($file); $owner_id = $info['uid']; 功能:

realpath()

存在类似的函数来获取文件组。

到文件的URL

这完全取决于您如何公开文件,但<table> <thead> <th>Column1</th> <th>Column2</th> <th>Column3</th> </thead> <tbody> <tr> <td>Cell A1</td> <td>Cell A2</td> <td>Cell A3</td> </tr> <tr> <td>Cell B1</td> <td>Cell B2</td> <td>Cell B3</td> </tr> </tbody> </table> 功能可能有用(http://php.fubra.com/manual/en/function.realpath.php)。

答案 1 :(得分:0)

在BlackBerry Support Formums上提供帮助:http://supportforums.blackberry.com/t5/Native-Development/Securing-QFtp/m-p/3113418/highlight/true#M73468所以现在JSON没有返回多个&#39;项目实例&#39;