• 15-04-2014, 18:36:27
    #1
    Merhaba arkadaşlar aşagıdaki kod ile bir foto galeri scripti yapıyorum takıldığım bir noktada yardımınıza ihtiyacım var.

    Aşagıdaki kodda ileri dediğimde ilgili klasördeki bir sonraki resme gitmesini istiyorum fakat bir sonraki resme değilde klasör içerisindeki herhangi bir resmi getiriyor. kodda ne gibi bir değişiklik yapmalıyım yadımcı olursanız sevinirim.


    <?php
    
    $albumName = "Galeri"; 
    
    $p = $_GET['p'];
    if ($handle = opendir("images")) {
    	$i = 1;
    	while (false !== ($file = readdir($handle))) {
    		if ($file != "." && $file != "..") {
    			$img[$i] = $file;
    			if ($p == $img[$i]) {
    				$ci = $i;
    			}
    			$i++;
    		}
    	}
    	closedir($handle);
    	$ti = $i - 1;
    	$pi = $ci - 1;
    	if ($p == "") {
    		$ni = $ci + 2;
    	} else {
    		$ni = $ci + 1;
    	}
    	$prevNext = "";
    	if ($pi > 0) {
    		$piFile = $img[$pi];
    		$prevNext .= "<a href=\"" . $_SERVER['PHP_SELF'] . "?p=" . $piFile . "\" title=\"show previous image\">Geri</a>";
    	} else {
    		$prevNext .= "Geri";
    	}
    	$prevNext .= " | ";
    	if ($ni <= $ti) {
    		$niFile = $img[$ni];
    		$prevNext .= "<a href=\"" . $_SERVER['PHP_SELF'] . "?p=" . $niFile . "\" title=\"show next image\">ileri</a>";
    	} else {
    		$prevNext .= "ileri";
    	}
    	if ($p == "") {
    		$p = $img[1];
    	}
    }
    ?>
  • 15-04-2014, 23:29:41
    #2
    Üyeliği durduruldu
    Böyle olması çok normal, çünkü her seferinde yeniden işlem yapılıyor, her seferinde farklı bir array oluşuyor. Bir MYSQL veritabanına resimleri ve id'lerini yazıp, id ile çekmek daha mantıklı olacaktır.
  • 17-04-2014, 19:06:08
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    <?php
    
    $imageIndex = isset($_GET['p']) ? intval($_GET['p']) : 0;
    
    $directory = 'test2';
    
    $iterator = new RecursiveIteratorIterator( 
    											new RecursiveDirectoryIterator($directory,RecursiveDirectoryIterator::SKIP_DOTS),
    											RecursiveIteratorIterator::LEAVES_ONLY);
    
    $ext = array("png", "jpg", "jpeg");
    
    foreach ($iterator as $fileinfo) {
    
        if (in_array($fileinfo->getExtension(), $ext)) {
            $images[] = $fileinfo->getFileName();
        }
    	
    }
    
    if(!isset($images[$imageIndex])) $imageIndex = 0;
    
    $nextImage = isset($imageIndex) ? $imageIndex + 1 : 1;
    $prevImage = isset($imageIndex) && ($imageIndex != 0) ? $imageIndex - 1 : 0;
    
    ?>
    <img src="<?=$directory.'/'.$images[$imageIndex]?>">
    <br>
    <a href="<?=$_SERVER['PHP_SELF']?>?p=<?=$prevImage?>">geri</a>
    
    <a href="<?=$_SERVER['PHP_SELF']?>?p=<?=$nextImage?>">ileri</a>
  • 19-04-2014, 16:18:33
    #4
    http://tr2.php.net/manual/en/function.glob.php

    resim isimlerini dizi verisi olarak alın,

    http://tr2.php.net/manual/en/function.json-encode.php

    javascript objesi olarak sayfanıya ekleyin ve bundan sonraki işlemleri javascript ile halledin.

    bir sonraki resim için tekrar tekrar php ile dizindeki resimleri buldurmanıza gerek yok.