Bir klasordeki HTML uzantili dosyalari link ve isim seklinde listelemek (sayfalamak)

kuaza

0
İyinet Üyesi
Katılım
4 Ağustos 2009
Mesajlar
835
Reaction score
7
merhaba bir klasor var bu kalasor icinde 5-50 bin arasinda html uzantili dosya var..

bu dosyalari bir index sayfasinda 100 erli sekilde listelemek ve sayfalara boldurmek istiyorum..

bu konuda akil verebilecek arkadaslar varmi ? :) tesekkurler simdiden..
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
http://us3.php.net/readdir

PHP:
<?php

if ($handle = opendir('/path/to/files')) {
    echo "Directory handle: $handle\n";
    echo "Files:\n";

    /* This is the correct way to loop over the directory. */
    while (false !== ($file = readdir($handle))) {
        echo "$file\n";
    }

closedir($handle);
}
?>
 

Invictus

0
İyinet Üyesi
Katılım
4 Şubat 2010
Mesajlar
328
Reaction score
8
Konum
istanbul
PHP:
<?php

$limit = 100;

$p = intval($_GET['p']);
if($p == '' or $p < 1) $p = 1;
$x = ($p-1)*$limit;
$y = $x+$limit;

$path = $_SERVER['DOCUMENT_ROOT'].'/'; // dizin yolu, sen yazıcaksın burayı
$handle = opendir($path) or die('dizin açılamadı');
while(false !== ($file = readdir($handle))) {
	if(preg_match('#html#si',$file) and $file != "." and $file != ".." and !is_dir($file)) {
		$list[] = $file;
	}
}

$toplam = count($list);
$tsayfa = ceil($toplam/$limit);

closedir($handle);
echo "<ul>\n";
for($i=$x;$i<$y;$i++) {
	echo "\t<li><a href=\"$path$list[$i]\">$list[$i]</a></li>\n";
}
echo "</ul>\n";
if($tsayfa > 1) {
	echo "Sayfalar\t:\n";
	for($i=1;$i<=$tsayfa;$i++) {
		echo "<a href=\"?p=$i\">$i</a> -\n";
	}
}

?>
 

kuaza

0
İyinet Üyesi
Katılım
4 Ağustos 2009
Mesajlar
835
Reaction score
7
tam istedigim gibi bir kod, burada cevap vermis bi arkadas: http://forum.ceviz.net/php/91015-bi...k-ve-isim-seklinde-listelemek-sayfalamak.html

kod bu:
PHP:
  <?php

$dizin = "./";
$tutucu = opendir($dizin);

 while(($dosya = readdir($tutucu)))
  {
    if(is_file($dizin."/".$dosya))
   $makale[] = $dosya; }
  
closedir($tutucu);


$limit = 100; 
$sf = $_GET["id"];
if($sf < 1) $sf = 1;
$toplam = count($makale);


$kactan = ($sf-1) * $limit;
$kaca = ($kactan+$limit);
if($kaca > $toplam) $kaca = $toplam;


for($i=$kactan; $i < $kaca; $i++){
echo "<p>".($i+1).") "."<a href='".$dizin."/".$makale[$i]."' target='_blank'>".$makale[$i]."</a></p>";
}

echo "<p>";
for($i=1; $i <($toplam / $limit)+1; $i++){
if($sf == $i)
echo "$i"; 
else
echo "<a href='dizinsayfalama.php?page=makaleler&id=$i'>\t$i</a>\n";
} 
echo "</p>\n";
?>

yukaridaki kod, hem listeliyor, hemde fazla olanlari sayfalara boluyor.. boyle bisey arayanlar icin harika bir kod :):)

bu arada @Angelo, @Invictus tesekkurler :)
 

Invictus

0
İyinet Üyesi
Katılım
4 Şubat 2010
Mesajlar
328
Reaction score
8
Konum
istanbul
nerdeyse benim verdiğim kodun aynısı :) benimkisinde ek olarak belirttiğin dizin içindeki klasörleri listelemiyor, dosyaların da hepsini değil sadece html uzantılı dosyaları listeliyor istediğin şekilde
 

kuaza

0
İyinet Üyesi
Katılım
4 Ağustos 2009
Mesajlar
835
Reaction score
7
nerdeyse benim verdiğim kodun aynısı :) benimkisinde ek olarak belirttiğin dizin içindeki klasörleri listelemiyor, dosyaların da hepsini değil sadece html uzantılı dosyaları listeliyor istediğin şekilde
zamana gore listeleyebilirmiyiz acaba ? zor dedi cevizdeki arkadas ama klasore ekleneme zamanina gore listeleyebilsek cok daha guzel olacak :)

bu arada seninkini mesaj yazdiktan sonra gordum, cok benziyor :)

ekleme: yanlis en iyi evap sectim, uste cikti :) modlar ilgilenir ins:)
 

Invictus

0
İyinet Üyesi
Katılım
4 Şubat 2010
Mesajlar
328
Reaction score
8
Konum
istanbul
örneğin son 3 saatte oluşturulan dosyaları mı listelemek istiyorsun yoksa dosyaların hepsini oluşturulma zamanlarına göre mi listelemek istiyorsun?
 

kuaza

0
İyinet Üyesi
Katılım
4 Ağustos 2009
Mesajlar
835
Reaction score
7
örneğin son 3 saatte oluşturulan dosyaları mı listelemek istiyorsun yoksa dosyaların hepsini oluşturulma zamanlarına göre mi listelemek istiyorsun?

evet en son olusturulan dosyayi en sonlarda listlesin, yani ilk olusturulan dosyanin zamanindan en son olusturulan dosya zamanina dogru sayfalasin.. olabilirmi boyle bisey??
 

Invictus

0
İyinet Üyesi
Katılım
4 Şubat 2010
Mesajlar
328
Reaction score
8
Konum
istanbul
evet olabilir :)
edit : bu arada filemtime ile alakalı uyarı alırsan, dosyayı listemele yapacağın dizine koyup tekrar dene
PHP:
<?php

$path = $_SERVER['DOCUMENT_ROOT'].'/'; // dizin yolu, sen yazıcaksın burayı
$handle = opendir($path) or die('dizin açılamadı');
$i = 0;
while(false !== ($file = readdir($handle))) {
    if(preg_match('#html#si',$file) and $file != "." and $file != ".." and !is_dir($file)) {
		$list[$i][0] = filemtime($file);
        $list[$i][1] = $file;
		$i++;
    }
}
sort($list);

$limit = 100;
$toplam = count($list);
$tsayfa = ceil($toplam/$limit);
$p = intval($_GET['p']);
if($p == '' or $p < 1) $p = 1;
$x = ($p-1)*$limit;
$y = $x+$limit;
if($y > $toplam) $y = $toplam;

closedir($handle);
echo "<ul>\n";
for($i=$x;$i<$y;$i++) {
	$tarih = date('d.m.Y - H:i:s',$list[$i][0]);
    echo "\t<li><a href=\"$path".$list[$i][1]."\">".$list[$i][1]."</a> - $tarih</li>\n";
}
echo "</ul>\n";
if($tsayfa > 1) {
    echo "Sayfalar\t:\n";
    for($i=1;$i<=$tsayfa;$i++) {
        echo "<a href=\"?p=$i\">$i</a> -\n";
    }
}

?>
 

kuaza

0
İyinet Üyesi
Katılım
4 Ağustos 2009
Mesajlar
835
Reaction score
7
@Invictus son verdigin kod cok basarili oldu harika :):) bu kod sunucuyu yorarmi acaba ? cache uygulasam mi karar veremedim..
 

Invictus

0
İyinet Üyesi
Katılım
4 Şubat 2010
Mesajlar
328
Reaction score
8
Konum
istanbul
yoracağını sanmıyorum, ama yine de 5dk lık falan cache uygulasan da bi zararı olmaz herhalde
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst