Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Jeśli katalog zawiera tylko jeden plik, wyświetl... - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Jeśli katalog zawiera tylko jeden plik, wyświetl... (/thread-je%C5%9Bli-katalog-zawiera-tylko-jeden-plik-wy%C5%9Bwietl)



Jeśli katalog zawiera tylko jeden plik, wyświetl... - Apikshos - 15-03-2013

Witam.
Mam problem z którym się męcze jakis czas. Skrypt obecnie działa wyświetlając miniatury zdjęć z nowo utworzonych katalogów. Natomiast chciałbym dodać funkcję która wyświetla konkretne zdjęcie w przypadku kiedy katalog zawiera tylko jeden plik.

Kod PHP:
<?php 
$dir 
'data/img/gallery/';
    
$handle opendir($dir);
    
$nb 1;
                        while ( 
$filename readdir($handle)) {
                        if( 
$filename != ".." && $filename != "." && is_dir($dir.$filename) ) {
                echo 
'<ul class="span2">';
                                            
// LOSOWE
                            
$directory = ($dir.$filename);
                            
$image = array ();
                                 if (
is_dir($directory))
                                 {
                                        if (
$dh opendir($directory))
                                        {
                                             while ((
$file readdir($dh)) !== false)
                                             {
                                                    if (
$file != '...' && $file != '..' && $file != '.')
                                                    {
                                                         
$image[] = $file;
                                                         
$file = array ('jpg''jpeg''png''gif');
                                                         
                                                    }
                                             }
                                             
closedir($dh);
                                             
$total count($image)-1;
                                             
$aleatoire rand(1,1);
                                             
$image_afficher "$image[$aleatoire]";
                                             echo
'<li class="thumbnail span">';
                                             
// Wynik
                                             
print '<a href="index.php?p=manage-photo&g='$filename  .'"><img src="'$directory'/'$image_afficher '">';
                                             echo 
'</a>';
                                             echo 
'</li>';
                                        }
                                 }
                                echo 
'<div class=span>';
                echo 
'<i class="icon-eye-open"></i> <a href="index.php?p=manage-photo&g='$filename  .'">'.  preg_replace("/-/"" "$filename) ;
            echo 
'</a>';
                echo 
'</div>';
                echo 
'</ul>';
             
         
$gallery[$nb] = $filename;
         
$nb++; 
         }
    }            
    global 
$lang_gal_no_gal;
    if(
$nb == 1)
        echo 
"<p class=\"created\">$lang_gal_no_gal</p>";
    
$_SESSION["gallery"] = $gallery;
?>



RE: Jeśli katalog zawiera tylko jeden plik, wyświetl... - anfo - 12-05-2013

w pętli "while ( $filename = readdir($handle)) {" dodaj na początku:

if(count($filename) == 1) {
exit('jeden plik');
}

// yy, nie wiem czy to zadziała, zapomniałem czy to jest tablicą. ale stestuj Tongue


RE: Jeśli katalog zawiera tylko jeden plik, wyświetl... - Apikshos - 13-05-2013

Dzięki za pomoc. Tak, to działa na tablicach, ale sprawdzę jak działa po modyfikacji skryptu.


RE: Jeśli katalog zawiera tylko jeden plik, wyświetl... - mateo - 13-05-2013

Dodaj wszystkie pliki z folderu do tablicy, przelicz ją za pomocą count() i dopiero potem wyświetl co chcesz.