从目录读取Codeigniter失败


Codeigniter read from directory failed

我更改了,现在它什么都不显示。文件夹中存在目录。

我给你举个例子。如果我回显$dir,我会得到fullurlpath/root_folder/username

整个路径和目录都存在,所以$dir是可以的,一定发生了其他事情。

类Front_Page扩展CI_Model{

function front_display(){
    $this->db->select('id, username');
    $query = $this->db->get('models')->result();
    $display_models = '<ul class="display-models">';
    foreach ($query as $row){

        $username= $row->username;
        $dir = base_url('/img/'.$username.'');
        echo $dir;
        if(is_dir($dir)){
            if($dh = opendir($dir)){
                while(($file = readdir($dh)) !== FALSE){            
                    $display_models .= '<li>';
                    $display_models .= '<a href="profilepage/'.$row->id.'">';
                    $display_models .= '<img src="'.$dir.'/'.$file.'">';
                    $display_models .= '</a>';
                    $display_models .= '</li>';
                }
                closedir($dh);
            }
        }
    }
        $display_models .= '</ul>';
        return $display_models;
}

}

您得到的错误是没有找到路径,必须先存在。第二个问题是,即使路径是固定的,您也以错误的方式使用代码。

// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            $display_models .= '<li>';
    $display_models .= '<a href="profilepage/'.$row->id.'">';
    $display_models .= '<img src="'. $dir.'/'. $file.'">';
    $display_models .= '</a>';
    $display_models .= '</li>';
        }
        closedir($dh);
    }
}

你会想要类似于上面的东西,这就是你使用该函数的方式。

请记住,路径需要首先固定,否则将不会循环通过任何内容,因为找不到文件夹,也找不到任何要循环通过的文件。