2

私はテキストファイルを含むディレクトリを持っています、私は通常phpで利用可能なDirectoryIteratorクラスを使用してディレクトリを反復し、ファイル名を取得します。CIでそれを試すのに問題があります。私はCIにまったく慣れていないので、ご容赦ください:)。

myblogという名前のデフォルトのコントローラーにこのようなものがあります (インデックス関数の直後に関数を記述しました)。

<?php

    public function diriterate()
    {
        $this->load->helper('directory');

        $mapi=directory_map('./myfolder/');

        $this->load->view('index.php',$mapi);       
    } 

?>

そして私は私の見解でこのようなことを試みています

<?php
    foreach($mapi as $key)
    {   
        echo $key;  
    }
?>

私はここでそれを明らかに間違っていますか?。

(1)私の理解が正しければ、mysitename / class / function(私の場合はlocalhost / myblog / diriterate)のように実行できます(2)私のディレクトリはrootfolder(rootfolder / myfolder)内にあるので、baseurlやなにか ?。

DirectoryIteratorクラスを使用してビューでこれを行う場合、または反復用に別のコントローラーを作成する場合、私は本当に混乱しています。助けを歓迎します。よろしくお願いします。

4

1 に答える 1

3

MVCの規則に従います。

モデルmodels/folder_model.php

class Folder_model extends CI_Model {
    function iterate() {
        $this->load->helper('directory');
        $map = directory_map('./myfolder', 1);
        return $map;
    }
}

ディレクトリマップの場合、アプリケーションのルートディレクトリを検索します。これは、を含むパスを意味しますindex.php1これにより、再帰的ではなく、その最上位のパス上でのみ発生することに注意してください。

コントローラーcontrollers/folder.php

class Folder extends CI_Controller {
    function index() {
        $this->load->model('folder_model');
        $map = $this->folder_model->iterate();

        $this->load->view('folder', array('map' => $map));
    }
}

views/folder.phpを表示

<? foreach ($map as $item): ?>
    <?= $item ?>
<? endforeach; ?>

これは、で表示できhttp://localhost/index.php/folderます。

于 2012-07-07T15:29:00.137 に答える