2017-02-05 9 views
0

私たちのフォルダとサブフォルダ内のイメージの総数をカウントするには?PHP CodeIgniter - フォルダとそのサブフォルダ内のイメージを数える方法

私はこれを私の見解に入れました。まあ、MVCの方法として、これは見た目に見えるかもしれません。私はモデルにこれを置く方法を知っているが、コントローラとビュー

でそれを呼び出す方法がわからない
<?php 
$img = count(glob("./assets/images/*.*")); 
$about = count(glob("./assets/images/aboutus/*.*")); 
$blog1 = count(glob("./assets/images/blog/*.*")); 
$mason = count(glob("./assets/images/blog/masonary/*.*")); 
$tl = count(glob("./assets/images/blog/timeline/*.*")); 
$blog2 = count(glob("./assets/images/blogdetails/*.*")); 
$gallery = count(glob("./assets/images/gallery/*.*")); 
$home = count(glob("./assets/images/home/*.*")); 
$home2 = count(glob("./assets/images/home/slider/*.*")); 
$ico = count(glob("./assets/images/ico/*.*")); 
$lb = count(glob("./assets/images/lightbox/*.*")); 
$keg = count(glob("./assets/images/kegiatan/*.*")); 
$port1 = count(glob("./assets/images/portfolio/*.*")); 
$port2 = count(glob("./assets/images/portfolio-details/*.*")); 
$leader = count(glob("./assets/images/leaders/*.*")); 
$srv = count(glob("./assets/images/services/*.*")); 
$usr = count(glob("./assets/images/users/*.*")); 
$count = $img+$about+$blog1+$mason+$tl+$blog2+$gallery+$home+$home2+$ico+$lb+$keg+$port1+$port2+$leader+$srv+$usr; 
?> 

出力:

<div class="col-sm-3 text-center wow bounceIn" data-wow-duration="1000ms" data-wow-delay="300ms"> 
    <h1 class="timer bold" data-to="<?= $count;?>" data-speed="3000" data-from="0"></h1> 
    <h3>Total Images</h3> 
</div> 

が、これは簡単にする方法はありますか?

+0

そのPHPコードをモデルにして、コントローラ経由でビューから呼び出す必要があります。右? – Perumal

答えて

1

[1]あなたが[RecursiveDirectoryIterator] [1]

<?php 
function scan_dir($path){ 
    $ite=new RecursiveDirectoryIterator($path); 

    $bytestotal=0; 
    $nbfiles=0; 
    foreach (new RecursiveIteratorIterator($ite) as $filename=>$cur) { 
     $filesize=$cur->getSize(); 
     $bytestotal+=$filesize; 
     $nbfiles++; 
     $files[] = $filename; 
    } 

    $bytestotal=number_format($bytestotal); 

    return array('total_files'=>$nbfiles, 
'total_size'=>$bytestotal,'files'=>$files); 
    } 

$files = scan_dir('./'); 

echo "Total: {$files['total_files']} files, {$files['total_size']} >bytes\n"; 
//Total: 1195 files, 357,374,878 bytes 
?> 

を使用して、このようにそれを行うことができ https://stackoverflow.com/a/10895775/7089527

をご覧ください:http://php.net/manual/en/class.recursivedirectoryiterator.php

・ホープ助けてください

+0

これはうまくいくかもしれませんが、私の質問はCIについてです –

0

コントローラからモデル内のメソッドを呼び出すための形式。

モデルファイル:コントローラで

application/models/Photo_shoot_model.php 


class Photo_shoot_model extends CI_Model { 

public function image_count() { 

$img = count(glob("./assets/images/*.*")); 
$about = count(glob("./assets/images/aboutus/*.*")); 
$blog1 = count(glob("./assets/images/blog/*.*")); 
$mason = count(glob("./assets/images/blog/masonary/*.*")); 
$tl = count(glob("./assets/images/blog/timeline/*.*")); 
$blog2 = count(glob("./assets/images/blogdetails/*.*")); 
$gallery = count(glob("./assets/images/gallery/*.*")); 
$home = count(glob("./assets/images/home/*.*")); 
$home2 = count(glob("./assets/images/home/slider/*.*")); 
$ico = count(glob("./assets/images/ico/*.*")); 
$lb = count(glob("./assets/images/lightbox/*.*")); 
$keg = count(glob("./assets/images/kegiatan/*.*")); 
$port1 = count(glob("./assets/images/portfolio/*.*")); 
$port2 = count(glob("./assets/images/portfolio-details/*.*")); 
$leader = count(glob("./assets/images/leaders/*.*")); 
$srv = count(glob("./assets/images/services/*.*")); 
$usr = count(glob("./assets/images/users/*.*")); 
$count = $img+$about+$blog1+$mason+$tl+$blog2+$gallery+$home+$home2+$ico+$lb+$keg+$port1+$port2+$leader+$srv+$usr; 

return $count; 

} 

} 

public function index() { 

// load model 
$this->load->model('photo_shoot_model'); 

// call method 
$howManyImages = $this->photo_shoot_model->image_count() 

} 

すべてのモデルについて:https://codeigniter.com/user_guide/general/models.html

しかし、実際に、私は@MayurVirkar言及RecursiveDirectoryIteratorを使用すると思います。

関連する問題