• 25-01-2015, 09:53:56
    #1
    Merhaba arkadaşlar aşağıda iki adet kod var bu kodlardan ilki dosya içerisindeki verileri sıralamamı sağlıyor ikincisi ise verileri düzenleme tarihine göre sıralıyor bu iki kodu bir araya getirebilecek bir arkadş bana yardımcı olursa çok sevinirim.

    Bir diğer konu ise verileri çekeceğim yerde veri sayısı çok fazla olduğundan bunu 10'arlı halde sayfalamamda gerekiyor şimdiden teşekkürler...

    <?php
    
    $dizin = "test";
    $uzanti = "htm"; //hangi uzantı?
    
    //Uzantı alma fonksiyonu
    function ext($text)  { 
        $text = strtolower(pathinfo($text, PATHINFO_EXTENSION));
        return $text;  }
    
    echo '<div class="title"><b>'.$uzanti.'</b> uzantılı dosyalar:</div>';
    
    if ($handle = opendir("$dizin") or die ("Dizin acilamadi!")) {
    
        while (false !== ($file = readdir($handle))) {
        $filetype = ext($file);
    
            if(is_file($dizin."/".$file) && $filetype == "$uzanti") { //eger bir dosya ise ve bizim belirlediğimiz uzantıya sahipse
    
            $class = ($css % 2) ? "satir1" : "satir2"; // her satira farklı class
    
            echo '
            <div class="'.$class.'"><a href="'.$dizin.'/'.$file.'">'.$file.'</a> </div>'; 
    
            $css++;
    
            } 
    
        } //while end
    
        closedir($handle);
    
    }
    
    ?>
    function filesByDate( $directory ) {
        $files = array();
        if( !$dh = opendir( $directory ) ) {
            trigger_error( "Failed to open directory [" . $directory . "]", E_USER_WARNING );
            return false;
        }
        while( ($file = readdir( $dh )) !== false ) {
    
            $files[$file] = fileatime( $directory . DIRECTORY_SEPARATOR . $file );
        }
        asort( $files );
        return array_keys( $files );
    }
  • 25-01-2015, 13:02:06
    #2
    Selamlar,

    Anladığım kadarı ile dizin içerisindeki belli uzantıya sahip dosyaları tarih sırasına göre sıralamak?! Bunun için iki kodu bir araya getirerek bir şey yapamayız. Tek çıkar yolu önce dizindeki dosyaları okuyup bunların tarihlerini ve adlarını array ile dizi içerisine almak. Daha sonra eşleştirme yapıp foreach ile arrayi tekrar okumak.

    Burda sıkıntı şu aslında, aynı tarihte olan dosyalar aynı key ile atıldığında array dizisi bozulur. Farklı bir yöntem ile yapacağız. Sizin kodunuza göre örnek bir kod yazdım.

    Umarım faydalı olmuştur. Kolay gelsin.

    <?php
    $dizin = "test/";
    $uzanti = "htm"; //hangi uzantı?
    
    //Uzantı alma fonksiyonu
    function ext($text)  { 
        $text = strtolower(pathinfo($text, PATHINFO_EXTENSION));
        return $text;  
    }
    
    $dosyaAdi = array(); // yeni
    $dosyaTarih = array(); // yeni
    
    echo '<div class="title"><b>'.$uzanti.'</b> uzantili dosyalar:</div>';
    
    if ($handle = opendir("$dizin") or die ("Dizin acilamadi!")) {
    
        while (false !== ($file = readdir($handle))) {
        $filetype = ext($file);
    
            if(is_file($dizin."/".$file) && $filetype == "$uzanti") { //eger bir dosya ise ve bizim belirlediğimiz uzantıya sahipse
    
    			$dosyaAdi[] = $file; // yeni
    			$dosyaTarih[] = filemtime($dizin."/".$file); // yeni
            } 
    
        } //while end
    
        closedir($handle);
    
    }
    /* tarihe göre sıralama */
    
    asort($dosyaTarih); // küçükten büyüğe doğru tarihleri göre sırala
    $dosyaAdlari_Array = array_keys($dosyaTarih); 
    foreach ($dosyaAdlari_Array as $key=>$name) $name = $dosyaAdi[$value];
    $dosya_tarihleri = array_merge($dosyaTarih);
    $i = 0;
    foreach ($dosya_tarihleri as $dtarih){ 
    	$ix = $dosyaAdlari_Array[$i]; 
    	$dosya = $dosyaAdi[$ix]; 
    	$i++;
    
    	$class = ($css % 2) ? "satir1" : "satir2"; // her satira farklı class
    	echo '
    	<div class="'.$class.'"><a href="'.$dizin.'/'.$dosya.'">'.$dosya.'</a> - Tarih: '.date("d.m.Y - H:i:s",$dtarih).' </div>';
    	$css++;      
    } 
    
    ?>




    RenkliMedia adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar aşağıda iki adet kod var bu kodlardan ilki dosya içerisindeki verileri sıralamamı sağlıyor ikincisi ise verileri düzenleme tarihine göre sıralıyor bu iki kodu bir araya getirebilecek bir arkadş bana yardımcı olursa çok sevinirim.

    Bir diğer konu ise verileri çekeceğim yerde veri sayısı çok fazla olduğundan bunu 10'arlı halde sayfalamamda gerekiyor şimdiden teşekkürler...

    <?php
    
    $dizin = "test";
    $uzanti = "htm"; //hangi uzantı?
    
    //Uzantı alma fonksiyonu
    function ext($text)  { 
        $text = strtolower(pathinfo($text, PATHINFO_EXTENSION));
        return $text;  }
    
    echo '<div class="title"><b>'.$uzanti.'</b> uzantılı dosyalar:</div>';
    
    if ($handle = opendir("$dizin") or die ("Dizin acilamadi!")) {
    
        while (false !== ($file = readdir($handle))) {
        $filetype = ext($file);
    
            if(is_file($dizin."/".$file) && $filetype == "$uzanti") { //eger bir dosya ise ve bizim belirlediğimiz uzantıya sahipse
    
            $class = ($css % 2) ? "satir1" : "satir2"; // her satira farklı class
    
            echo '
            <div class="'.$class.'"><a href="'.$dizin.'/'.$file.'">'.$file.'</a> </div>'; 
    
            $css++;
    
            } 
    
        } //while end
    
        closedir($handle);
    
    }
    
    ?>
    function filesByDate( $directory ) {
        $files = array();
        if( !$dh = opendir( $directory ) ) {
            trigger_error( "Failed to open directory [" . $directory . "]", E_USER_WARNING );
            return false;
        }
        while( ($file = readdir( $dh )) !== false ) {
    
            $files[$file] = fileatime( $directory . DIRECTORY_SEPARATOR . $file );
        }
        asort( $files );
        return array_keys( $files );
    }
  • 25-01-2015, 13:06:40
    #3
    mtl adlı üyeden alıntı: mesajı görüntüle
    Selamlar,

    Anladığım kadarı ile dizin içerisindeki belli uzantıya sahip dosyaları tarih sırasına göre sıralamak?! Bunun için iki kodu bir araya getirerek bir şey yapamayız. Tek çıkar yolu önce dizindeki dosyaları okuyup bunların tarihlerini ve adlarını array ile dizi içerisine almak. Daha sonra eşleştirme yapıp foreach ile arrayi tekrar okumak.

    Burda sıkıntı şu aslında, aynı tarihte olan dosyalar aynı key ile atıldığında array dizisi bozulur. Farklı bir yöntem ile yapacağız. Sizin kodunuza göre örnek bir kod yazdım.

    Umarım faydalı olmuştur. Kolay gelsin.

    <?php
    $dizin = "test/";
    $uzanti = "htm"; //hangi uzantı?
    
    //Uzantı alma fonksiyonu
    function ext($text)  { 
        $text = strtolower(pathinfo($text, PATHINFO_EXTENSION));
        return $text;  
    }
    
    $dosyaAdi = array(); // yeni
    $dosyaTarih = array(); // yeni
    
    echo '<div class="title"><b>'.$uzanti.'</b> uzantili dosyalar:</div>';
    
    if ($handle = opendir("$dizin") or die ("Dizin acilamadi!")) {
    
        while (false !== ($file = readdir($handle))) {
        $filetype = ext($file);
    
            if(is_file($dizin."/".$file) && $filetype == "$uzanti") { //eger bir dosya ise ve bizim belirlediğimiz uzantıya sahipse
    
    			$dosyaAdi[] = $file; // yeni
    			$dosyaTarih[] = filemtime($dizin."/".$file); // yeni
            } 
    
        } //while end
    
        closedir($handle);
    
    }
    /* tarihe göre sıralama */
    
    asort($dosyaTarih); // küçükten büyüğe doğru tarihleri göre sırala
    $dosyaAdlari_Array = array_keys($dosyaTarih); 
    foreach ($dosyaAdlari_Array as $key=>$name) $name = $dosyaAdi[$value];
    $dosya_tarihleri = array_merge($dosyaTarih);
    $i = 0;
    foreach ($dosya_tarihleri as $dtarih){ 
    	$ix = $dosyaAdlari_Array[$i]; 
    	$dosya = $dosyaAdi[$ix]; 
    	$i++;
    
    	$class = ($css % 2) ? "satir1" : "satir2"; // her satira farklı class
    	echo '
    	<div class="'.$class.'"><a href="'.$dizin.'/'.$dosya.'">'.$dosya.'</a> - Tarih: '.date("d.m.Y - H:i:s",$dtarih).' </div>';
    	$css++;      
    } 
    
    ?>


    Çok teşekkür ederim sağolun dünden beri yırtınıyorum bunu çözmek için ancak küçükten büyüğe değilde büyükten küçüğe sıralamam lazım ne yapmalıyım.
  • 25-01-2015, 15:41:00
    #4
    RenkliMedia adlı üyeden alıntı: mesajı görüntüle
    Çok teşekkür ederim sağolun dünden beri yırtınıyorum bunu çözmek için ancak küçükten büyüğe değilde büyükten küçüğe sıralamam lazım ne yapmalıyım.
    asort olan satiri arsort olarak degisitirin.

    kolay gelsin

    Sent from my GT-I9200 using Tapatalk