从目录读取的Codeigniter失败

时间:2013-08-02 19:15:52

标签: php image codeigniter readdir opendir

我改变了,现在它没有显示任何内容。目录存在于文件夹中。

我给你举个例子。如果我回显$ 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;
}

}

1 个答案:

答案 0 :(得分:0)

你得到的错误是说找不到路径,它必须先存在。第二个问题是,即使路径已修复,您也会以错误的方式使用代码。

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

您将需要与上述类似的内容,即使用该功能的方式。

请记住,路径需要先修复,否则不会遍历任何内容,因为找不到文件夹,也找不到要循环的文件。