Carlos Rocha Postado Agosto 2, 2010 Denunciar Share Postado Agosto 2, 2010 Pessoal, estou um tanto pérdido e preciso de uma força aquiPreciso arranjar uma forma de varrer uma pasta e ver quais imagens (só tem imagens la) que tem la e depois ncomparar com uma lista que vem do MySql.Depois, as nimagens que estiverem a mais na pasta que não tem na tabela do MySql, excluir essa imagem da pasta.Como fazer isso? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carlos Rocha Postado Agosto 2, 2010 Autor Denunciar Share Postado Agosto 2, 2010 (editado) Okagora, fiz assim:<?php $dir = "imagens/upload/venda/miniaturas/"; // Abre um diretorio conhecido, e faz a leitura de seu conteudo if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { $NomesFotos[] = $file; } closedir($dh); } } $NomeTodasFotos = implode(';',$NomesFotos); print $NomeTodasFotos; ?> [/oode] isso esta me retornando assim: (só tem duas fotos no diretorio) [code] .;..;2a3568999b212ce219fdae211f5a3f09.JPG;ff61f5f32cd8cf6ae950d1a0525c6609.JPG Minhas duvidas Esse inicio|; .;..; Pode ser tirado com substring ou pode acontecer de esse inicio, dependendo o diretorio ou do numero de imagens pode mudar? Olhe a ideia do codigo: <?php header('Content-Type: text/html; charset=utf-8'); include ("global/funcoes_php/var.php"); include("global/funcoes_php/conexao.php"); $MySQL = new TMySQL(); $MySQL->connect($host, $db, $user, $pass); ?> <?php function varre ($dir) { // Abre um diretorio conhecido, e faz a leitura de seu conteudo if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { $NomesFotos[] = $file; } closedir($dh); } } $NomeTodasFotos = implode(';',$NomesFotos); $NomeTodasFotos = substr($NomeTodasFotos, 5); return $NomeTodasFotos; } ?> <!--//////////////////////////////--> <? $sql=mysql_query(" select ImoveisCadastroVenda.Foto, ImoveisCadastroVenda.Foto2, ImoveisCadastroVenda.Foto3, ImoveisCadastroVenda.Foto4, ImoveisCadastroVenda.Foto5, ImoveisCadastroVenda.Foto6, ImoveisCadastroVenda.Foto7, ImoveisCadastroVenda.Foto8, ImoveisCadastroVenda.Foto9, ImoveisCadastroVenda.Foto10, from ImoveisCadastroVenda "); $dir = "imagens/upload/venda/miniaturas/"; while (list($Foto1,$Foto2,$Foto3,$Foto4,$Foto5,$Foto6,$Foto7,$Foto8,$Foto9,$Foto10) = mysql_fetch_row($sql)){ //aqui vai a comparaçao } ?> Editado Agosto 2, 2010 por Carlos Rocha Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carlos Rocha Postado Agosto 2, 2010 Autor Denunciar Share Postado Agosto 2, 2010 Entendi.Porem, pode ser que va imagens gif, png e não há como controlar isso.Então agora já consegui criar uma string com os nomes vindos do banco e do diretorio separados por ; em duas variaveis.Agora falta ver qual imagem nesta em uma e não esta na outra e criar a funçao para excluir essa imagem da pasta.Segue o que eu já consegui<?php header('Content-Type: text/html; charset=utf-8'); include ("global/funcoes_php/var.php"); include("global/funcoes_php/conexao.php"); $MySQL = new TMySQL(); $MySQL->connect($host, $db, $user, $pass); ?> <?php function varre ($dir) { // Abre um diretorio conhecido, e faz a leitura de seu conteudo if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { $NomesFotos[] = $file; } closedir($dh); } } $NomeTodasFotos = implode(';',$NomesFotos); $NomeTodasFotos = substr($NomeTodasFotos, 5); return $NomeTodasFotos; } $sql=mysql_query(" select ImoveisCadastroVenda.Foto, ImoveisCadastroVenda.Foto2, ImoveisCadastroVenda.Foto3, ImoveisCadastroVenda.Foto4, ImoveisCadastroVenda.Foto5, ImoveisCadastroVenda.Foto6, ImoveisCadastroVenda.Foto7, ImoveisCadastroVenda.Foto8, ImoveisCadastroVenda.Foto9, ImoveisCadastroVenda.Foto10 from ImoveisCadastroVenda ") or die("iiiiiiiii"); while (list($Foto1,$Foto2,$Foto3,$Foto4,$Foto5,$Foto6,$Foto7,$Foto8,$Foto9,$Foto10) = mysql_fetch_row($sql)){ $NomesFotos2[] = $Foto1.";".$Foto2.";".$Foto3.";".$Foto4.";".$Foto5.";".$Foto6.";".$Foto7.";".$Foto8.";".$Foto9.";".$Foto10; //aqui vai a comparaçao } $NomeTodasFotos2 = implode(';',$NomesFotos2); $NomeTodasFotos2 = substr($NomeTodasFotos2, 5); print $NomeTodasFotos2."<P>"; $dir = "imagens/upload/venda/miniaturas/"; print varre($dir)."<P>"; ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rickayron Postado Agosto 4, 2010 Denunciar Share Postado Agosto 4, 2010 (editado) para verificar o tipo de um arquivo você pode usar o explode depois a função reverse e verificar o primeiro elemento do array que será o tipoexe$Nome="blabla.png";$s=explode(".",$Nome);$s=array_reverse($s,false);$s[0] será igual ao tipo do arquivoe para excluir basta utilizar unlink($arquivo);é interessante usar o file_exists tambem para verificar se existe o arquivo quando for excluir Editado Agosto 4, 2010 por *FIT* Retirar quote desnecessario *FIT* Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Carlos Rocha
Pessoal, estou um tanto pérdido e preciso de uma força aqui
Preciso arranjar uma forma de varrer uma pasta e ver quais imagens (só tem imagens la) que tem la e depois ncomparar com uma lista que vem do MySql.
Depois, as nimagens que estiverem a mais na pasta que não tem na tabela do MySql, excluir essa imagem da pasta.
Como fazer isso?
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.