2014-03-31 44 views
0

我想读取某个目录的所有内容。我有下面的函数循环遍历目录并排列所有内容。唯一的问题是,我一直在为每个文件和目录获取filemtime(): stat failedfilesize(): stat failed。我试图寻找解决方案,但没有发现我的工作。我认为这可能是一个权限问题,但我可以从我正在安排的目录读写,所以这不是问题。有谁知道我该如何解决这个问题?filemtime()和文件大小()PHP错误

public function arrangeContents() 
    { 
     $currDir = opendir($this->path); 

     while($entryName = readdir($currDir)) 
     { 
      $this->content[] = $entryName; 
     } 
     closedir($currDir); 

     $this->content_count = count($this->content); 

     for($i = 0; $i < $this->getContentCount(); $i++) 
     { 
      $this->names[] = $this->content[$i]; 
      $this->name_hrefs[] = $this->content[$i]; 

      $this->extns[] = $this->findExts($this->content[$i]); 

      $this->file_sizes[] = number_format(filesize($this->content[$i])); 

      $this->mod_times[] = date("M j Y g:i A", filemtime($this->content[$i])); 
      $this->time_keys[] = date("YmdHis", filemtime($this->content[$i])); 

      $this->sortContents($this->content[$i]); 
     } 
    } 
+0

你给函数* full *路径和文件名吗? –

回答

0

我修复了这个问题,因为我没有在文件前加上路径。

如果我只是把$this->dir . '/' . $this->content[i]放在每个函数中,它给了我一切正确。

0

您正在获取文件路径错误或者您无权统计相关文件。

  1. 对于路径,尝试使用DIR不变或$ _ SERVER [“DOCUMENT_ROOT”]制定出完整的路径

  2. 对于许可,文件中必须由用户读取其下PHP。尝试用777测试一个文件夹来证明权限是问题。