Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ariel

Script Q Lista Imagens Da Pasta

Recommended Posts

Alguem poderia me ajudar a encontrar o erro desse script? Tipo, eu peguei um codigo dele na net e readaptei pra uma necessidade, mas, nao consegui entende-lo muito bem. Parece q tem array dentro de array,

 

Se alguem q entenda um pouco melhor, consiga me dizer oq pode-se ser retirado dele... ou melhorado.

 

Outro fato é que preciso de que ele liste as imagens em ordem, pq eu adaptei o mesmo codigo pra abrir primeiro as miniaturas e depois ao clicar abrir a foto grande, porem, ao clicar abre a foto, mas nao eh a mesma da miniatura, pq ele faz uma ordem diferente.

 

No arquivo da miniatura, eh o mesmo codigo, so mudei pra abrir 1 foto por pagina e pegar a ordem da foto q foi clicada q variavel pagina. Teoricamente, se as fotos estao sempre na mesma sequencia, e recebem o cod 001, 002, 003 etc... se eu faço pra abrir 1 foto por pagina, o 001, 002, etc seria a pagina e entao deveria abrir a foto grande correta (igual a da miniatura). Mas abre diferente.

 

Tem como fazer ficar uma ordem sempre a mesma?

 

grato.

 

//////////////////////////////////////////////////////////////////////Configurações////////////////////////////////////////////////////////////////////$numero_de_fotos = "20";	//Número de fotos por página$numero_de_colunas = "4";	//Número de colunas por página$dir	=   $_GET["id"];$tipo_de_arquivo = ".jpg"; //Especifique aqui o tipo do arquivo a ser listado, para mais de um coloque || EX. .gif||.jpg//////////////////////////////////////////////////////////////////////Verificar Diretório e Gerar Array com o índice de todas as fotos////////////////////////////////////////////////////////////////////$$dir = @opendir($dir) or die("Erro: Diretório inexistente!"); //Tenta abrir o diretório, caso não consiga, mostra a mensagem de erro.while (false !== ($file = readdir($$dir))) {	if (ereg("$tipo_de_arquivo",$file)) { 	if (ereg("t_",$file)) {	if ($file != "." && $file != "..") {		$i++;	$indice[$i] = "$dir/$file"; 	}}}}$indice = array_chunk($indice,$numero_de_fotos);	// Gera as paginas com o ARRAY_CHUNK (arredonda)$n_page = count($indice);	// Calcula o Número de Paginas, -1 devido a o indice inicia em 0// Corrige a indexação de paginas que iniciam em zero, cometido pelo array_chunckfor($i=$n_page; $i >= 0; $i--){	$indice[$i+1] = $indice[$i];	}//Define e reconhece a página a ser exibidaif (isset($_GET['foto'])){	$foto = $_GET['foto'];} else {	$foto = 1;}//Verificase a página é realmente válidaif ($foto > $n_page || $foto == 0) {	die("Erro: Pagina solicitada inexistente!");}?><table align="center" width="90%" border="0" cellpadding="0" cellspacing="0"><tr><td valign="top" align="right"><?echo "<td align=center>"; for ($i=0; $i < $numero_de_fotos; $i++) {	if ($indice[$foto][$i] != "") {	//Retira a possibilidade de criar um erro de lógica na última página.		$path = $indice[$foto][$i];	// Armazena o diretório do arquivo de acordo com a página		$p = $i + 1;		echo '<a href=java script:MM_openBrWindow(\'1pop_teste.php?id='.$dir.'&foto='.$p.'\',\'\',\'scrollbars=yes,resizable=yes,width=780,height=575,top=1,left=5\')>		<img src='.$path.' class=gray onMouseOut=this.className="gray" onMouseOver=this.className="color" border="0"> </a>';		if (($i+1) % $numero_de_colunas == 0) {  //Verifica o número de colunas exata especificada em "$numero_de_colunas".			print "<br>"; //Quebra a linha caso o número passe da quantidade setada por $numero_de_colunas.		}	}}print "</tr><tr><td> <td align=center><br>";for ($i=1; $i <= $n_page; $i++) {	if ($i != $foto) {	//Testa a pagina atual, é diferente da que esta sendo vista.		print "<a href=".$PHP_SELF."?id=$dir&foto=$i> $i</a>"; //Gera o link para a página atual.	} else {		print " [<b>$i</b>]</u>"; //Cloqueia o link para a página atual fazendo com que nem por engano o usuário clique no link da própria página atual	}}print "</tr></table>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acho que se você tirar um dos $ do $$dir que tem logo no começo do script jah vai arrumar....

 

 

 

$$dir = @opendir($dir) or die("Erro: Diretório inexistente!"); //Tenta abrir o diretório, caso não consiga, mostra a mensagem de erro.

 

while (false !== ($file = readdir($$dir))) {

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola amigo,tem como enviar o erro para que possamos verificar..so por curiosidade: $$dir indica que será criada uma variavel com u nome de outra variavel, exemplo:$dir = 'teste';ou seja $$dir é o mesmo que $teste .....att

Compartilhar este post


Link para o post
Compartilhar em outros sites

caar eu tb naum sei oke tem de errado... mas tipo... você pode usar esse meu aki que esta funcionando certinho....

 

ele ordena tb....

 

<?php	$dir = "images/banner"; // pega o endereco do diretorio	$aberto = opendir($dir); //ABRE O DIRETÓRIO	$i = 0;	while ($arq = readdir($aberto)) {		if ($arq != "." and $arq != "..") { //DESCONSIDERA DIRETÓRIOS E SUBDIRETÓRIOS			$arquivo[$i] = $arq; //Ao invés de listar o arquivo:			$i++;		}	}	asort($arquivo); //função que ordena um array	reset($arquivo); //Coloca o ponteiro do array no início	$j=0;	sort($arquivo);		while ($arquivo[$j] != "") {		echo "<img src=$dir/$arquivo[$j]>";		$j++;	}?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao pessoal, o problema maior é que estava listando um pouco aleatorio, e como eu uso o mesmo codigo pra abrir em pop-up, pegando o numero da foto como pagina (1 a 1), entao ai abria diferente a imagem.

 

Mas ae, depois de pesquisar, consegui dar uma alteradinha e achei a funcao natsort , q resolveu a parada. O script inteiro eh esse:

 

//////////////////////////////////////////////////////////////////////Configurações////////////////////////////////////////////////////////////////////$numero_de_fotos = "20";	//Número de fotos por página$numero_de_colunas = "4";	//Número de colunas por página$dir	=   $_GET["id"];$tipo_de_arquivo = ".jpg"; //Especifique aqui o tipo do arquivo a ser listado, para mais de um coloque || EX. .gif||.jpg//////////////////////////////////////////////////////////////////////Verificar Diretório e Gerar Array com o índice de todas as fotos////////////////////////////////////////////////////////////////////$abrir = @opendir($dir); //Tenta abrir o diretório, caso não consiga, mostra a mensagem de erro.while (false !== ($file = readdir($abrir))) {	if (ereg("$tipo_de_arquivo",$file)) { 	if (ereg("t_",$file)) {	if ($file != "." && $file != "..") {	//	$i++;	$indice[] = $dir."/".$file;	}}}}natsort($indice);$indice = array_chunk($indice,$numero_de_fotos);	// Gera as paginas com o ARRAY_CHUNK (arredonda)$n_page = count($indice);	// Calcula o Número de Paginas, -1 devido a o indice inicia em 0// Corrige a indexação de paginas que iniciam em zero, cometido pelo array_chunckfor($i=$n_page; $i >= 0; $i--){	$indice[$i+1] = $indice[$i];}//Define e reconhece a página a ser exibidaif (isset($_GET['pag'])){	$pag = $_GET['pag'];} else {	$pag = 1;}//Verificase a página é realmente válidaif ($pag > $n_page || $pag == 0) {	die("Erro: Pagina solicitada inexistente!");}?><table align="center" width="90%" border="0" cellpadding="0" cellspacing="0"><tr><td valign="top" align="right"><?echo "<td align=center>"; for ($i=0; $i < $numero_de_fotos; $i++) {	if ($indice[$pag][$i] != "") {	//Retira a possibilidade de criar um erro de lógica na última página.		$path = $indice[$pag][$i];	// Armazena o diretório do arquivo de acordo com a página		if ($pag > 1)		   {		   $p = ($i + 1) + ($numero_de_fotos * ($pag-1));		   }			else			{			 $p = $i + 1;			}		echo '<a href=java script:MM_openBrWindow(\'1pop_teste.php?id='.$dir.'&foto='.$p.'\',\'\',\'scrollbars=yes,resizable=yes,width=780,height=575,top=1,left=5\')>		<img src='.$path.' class=gray onMouseOut=this.className="gray" onMouseOver=this.className="color" border="0"> </a>';		if (($i+1) % $numero_de_colunas == 0) {  //Verifica o número de colunas exata especificada em "$numero_de_colunas".			print "<br>"; //Quebra a linha caso o número passe da quantidade setada por $numero_de_colunas.		}	}}print "</tr><tr><td> <td align=center><br>";for ($i=1; $i <= $n_page; $i++) {	if ($i != $foto) {	//Testa a pagina atual, é diferente da que esta sendo vista.		print "<a href=".$PHP_SELF."?id=$dir&pag=$i> $i</a>"; //Gera o link para a página atual.	} else {		print " [<b>$i</b>]</u>"; //Cloqueia o link para a página atual fazendo com que nem por engano o usuário clique no link da própria página atual	}}print "</tr></table>";

Ele funcionando: www.snk-neofighters.com/publicidade/1teste.php?id=001

so coloquei aki pra testes..

 

obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.