quarta-feira, 24 de agosto de 2011

Simples aplicação para listar imagens



Esta simples aplicação estou utilizando em meu projeto pessoal (My-website) para listar imagens (.jpg) contidas em um diretório específico. O código da aplicação está contido em um arquivo .php chamado "functions.php" que é incluído nas páginas do meu website, tal como:

<?php include('functions.php'); ?>

Neste arquivo (functions.php) eu desenvolvi (e estou desenvolvendo) os principais métodos que utilizarei nas página do meu website.

Faço, então, público este método contido no arquivo "functions.php":

<?php

function list_images($dir) {
    $opener = opendir($dir);
       
    while ($items_name = readdir($opener)) {
        $items[] = $items_name;
    }
       
    foreach ($items as $list) {
        if ($list != '.' && $list != '..' && fnmatch('*.jpg', $list)) { 
            $img[] = $list;
        }
    }
       
    if ($img != '') {
        return $img;   
    }   
}

?>

Atente-se para o parâmetro requerido pela função list_images(parâmetro) { }, que será o path do seu diretório de imagens.
A seguir demonstro como aplicar a função em uma página .php, ao qual você desejará exibir suas imagens:

<?php $img = list_images($dir = 'images/projects/'); ?>
<?php for ($i = 0; $i <= count($img)-1; $i++) { ?>
    <section class="project-img">               
        <img src="<?php echo $dir,$img[$i] ?>" alt="" />
    </section>
<?php } ?>

A primeiro linha do código acima demonstra o que eu havia dito anteriormente: a definição do parâmetro da função list_images(parâmetro) { } com o path do seu diretório de imagens (neste caso $dir = 'images/projects/').
Em seguida, o laço for que tem como objetivo efetuar a repetição do código HTML quantas vezes for preciso, ou seja, fará a repetição de acordo com o número de elementos do array $img (menos um [-1]), retornado na função list_images(parâmetro) { }, no arquivo "functions.php".

Nenhum comentário: