我在尝试从列表中的文件中获取属性时遇到了麻烦。代码是:
if ($this->dir = opendir($caminho))
{
$this->itens = array();
$this->itensTotal = 0;
$tipos = array("dir" => 0, "file" => 1);
while ($item = readdir($this->dir))
{
if (!in_array($item, $this->skip))
{
$t = filetype($item);
$this->itens[$tipos[$t] . $item] = array("nome" => $item,
"size" => filesize($item),
"tipo" => $t,
"perm" => fileperms($item));
$this->itensTotal++;
}
}
}
看到我的脚本是'file.php'并且在'www'文件夹中。当它读取它自己的文件夹(www)时,它可以正常工作并列出所有文件和目录及其属性。但是当它试图阅读例如: / www / folder / 函数filetype()
时,filesize()
fileperms()
不起作用!我在目录中获取了所有这些警告:
警告:filetype()[function.filetype]:bstp中的Lstat失败 第174行的D:\ UniformServer \ UniServer \ www \ files.php
警告:filesize()[function.filesize]:bkp中的stat失败 第176行的D:\ UniformServer \ UniServer \ www \ files.php
警告:fileperms()[function.fileperms]:bkp in的stat失败 第178行的D:\ UniformServer \ UniServer \ www \ files.php
它会打开文件夹,读取它的内容,但这些函数不会被写入
注意:
$caminho
有valids路径请随时欢迎任何帮助,因为谷歌没有帮助。
答案 0 :(得分:0)
我认为$item
只包含文件的basename。您可能应该在其前面添加目录路径,如下所示:filetype(this->dir . $item)
。
答案 1 :(得分:0)
文件操作使用系统上的真实目录名,而不是网站的相对路径,然后"/www/folder"
可能不存在。从您的评论中,您需要:"D:/UniformServer/UniServer/www/folder"
或使用php脚本中的相对路径。