Eski dostum PHP! Sektörün acımasız yanlarından biri olan hiç kod yazmadan yazılım şirketi (aslında website yapan-satan) yöneten bir arkadaşıma ihtiyaç duyduğu için ufak bir destekte bulundum. En son kaç yıl önce PHP ile uğraştığımı bile hatırlamıyorum halbuki. Sadede gelirsek image gallery’si bozulduğu için temel bir listeleme uygulamasına ihtiyacı vardı. Basitçe gösterdiği dizin içinde bulunan resimleri alacak, kalanı da JQuery halledecekti zaten.
Değişkenlerimiz şöyle;
$dizin değişkeni ile resimlerin bulunduğu sanal adresi gösteriyoruz
$satirLimit ile kaç resim sonra yeni satıra geçmesini istediğimizi belirliyoruz
$dir ile dizini açıyoruz
$dosya ile de dizin içindekileri okuyoruz
$satir ile dizinin kaçıncı resminde olduğumuzu sayıyoruz.
Tek fonksiyonumuz olan uzanti() ise $dosya ile okunan dosya isimlerini nokta(.)’yı baz alarak parçalayıp, dizinin son elemanı olan uzantıyı geri döndürüyor.
Geri dönen uzantı bilgisine göre de filtreleyip ekrana basıyoruz.
Gerçekten çok basit bir script. Demosunu şuraya koydum :
Kodumuz kabaca şöyle;
<? /* hmustak - http://mustak.org/ hmustak@gmail.com 18.08.2016 */ $dizin = "img/"; // Dizini gösterelim $satirLimit = 6; // Uzantının ne oluğunu görelim function uzanti($file_name) { return end(explode('.',$file_name)); } $dir = opendir($dizin); $satir = 0; // 6 imajda bir Alt satıra geçmesini sağlayalım //Dizindeki dosya listesini alalım while (($dosya = readdir($dir)) !== false){ if(! is_dir($dosya)){ //Dosya uzantımıza göre sınırlamamız if ((uzanti($dosya)=="jpg")|| (uzanti($dosya)=="JPG")|| (uzanti($dosya)=="jpeg")|| (uzanti($dosya)=="JPEG")|| (uzanti($dosya)=="gif")|| (uzanti($dosya)=="GIF")){ //Satır için resim adedini sayıyorduk $satir++; // Filtremiz uygunsa ekrana basalım echo "<a href=\"".$dizin.$dosya."\">"; echo "<img src=\"".$dizin.$dosya."\" width=\"161\" height=\"123\" border=\"0\" />"; echo "</a>"; // Satır belirlenen limite geldiyse yeni satıra geçsin if ($satir==$satirLimit){ echo "<br />\n"; }else{ echo "\n"; } }//--if uzantı }//--if is_dir }//--while closedir($dir); //İşimiz Bitti ?>
Hakan Müştak @2016
Bir yanıt yazın