Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fiz um sistema de galeria de fotos em PHP e com efeito Lightbox e qd clico na imagem da galeria criada para ver ampliado, ele exibe assim: Image 1 of 45 pois ele sabe dentro daquela pasta daquele evento tem 45 fotos.
Gostaria que o meu sistema mostrasse em baixo de cada foto da galeria a numeração de cada foto, e se não for possível pelo menos o nome do arquivo. Mas não sei fazer isso, visto que essas imagens do Upload multiplo não são gravadas no banco de dados, o sistema só cria a numeração do id dentro da pasta fotos, ou seja, quando cadastro uma galeria, ele cria a subpasta (dentro da pasta fotos) o nº 5(nome da subpasta que é o incremento do id) por exemplo, e envia as fotos para dentro dela.
Tentei gravar as fotos do Upload multiplo no BD, mas isso não é viável, pois além de ser muitas fotos, ele vai gerar um id para cada uma e não é isso que quero. Pensei em gravar no BD pelo menos o caminho (pasta) em que essas fotos estão sendo "jogadas" mas não sei se isso adiantaria.
Como exibir essa informação?
Eu fiz assim:
<?php
// lista arquivos do diretorio e pega todas as extensoes
foreach (glob("galeria/fotos/$pasta/.") as $filename) {
echo "<a href='$filename' target='_blank'><img src='$filename' width=140 border 0></a> ";
$dir = "sistemagaleria/eventos_fotos/$pasta/";
// Abre um diretorio conhecido, e faz a leitura de seu conteudo
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
echo "$filename\n";
closedir($dh);
}
}}
?>
Não sei se falta alguma coisa, mas ele está exibindo as fotos da galeria, e agora ele está pegando o nome do arquivo, mas o problema é que ele tá pegando o nome do caminho todo. Está exibindo assim abaixo da imagem: galeria/fotos/5/img_155.jpg
Como fazer para ele exibir somente o nome do arquivo?
Red FeniX...consegui....mmuuuuito obrigada pela sua ajuda.
A principio não estava entendendo muito o código que você postou pois sou iniciante em php, aí fui lá no manual PHP para entender o que a basename fazia, usei um trecho do script e funcionou perfeitamente.
<?php
foreach (glob("galeria/fotos/$pasta/.") as $filename) {
$arquivo = basename ($filename);
echo "<a href='$filename' target='_blank'><img src='$filename' width=140 border 0></a>$arquivo ";
}
?>
Valeu mesmo!!!
Muito obrigada
Faz um while() na exibição e insere uma variável $i='1' que se incrementa a cada loop ($i++). Ae é só mostrar essa variável embaixo de cada foto. E pra pegar os dados de cada arquivo, utilize pathinfo(). Mais ou menos assim:
while(false !=== ($arquivo = readdir($dir))) { Falo