Jump to content


Photo

Deixando De Listar Arquivos Específicos...


  • Faça o login para participar
13 replies to this topic

#1 Pahabo

Pahabo

    Turista

  • Usuários
  • 25 posts
  • Sexo:Não informado

Posted 08/12/2007, 11:37

Este código lista todos os arquivos dentro de um diretório.
O problema é que lista até arquivos que gostaria que ignorasse. Alguem sabe como posso fazê-lo ignorar determinados arquivos?

<?php
if ($handle = opendir('arquivos/.')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
echo "<a href="; echo '"arquivos/'; echo "$file\">";
echo "<img src="; echo '"arquivos/'; echo "$file\" width='150' height='150'>";
echo '</a>';
echo '&nbsp;&nbsp;';
}
}
closedir($handle);
}
?>

Grato!

#2 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 08/12/2007, 13:11

Amigo, evite de usar dessa forma.

Veja:
glob()
foreach()

Muito mais eficiente :D
Até mais ^_^

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#3 Pahabo

Pahabo

    Turista

  • Usuários
  • 25 posts
  • Sexo:Não informado

Posted 10/12/2007, 13:13

Hum... cara, agradeço pela resposta, mas não manjo de PHP.
Encontrei este código por acaso e ele faz exatamente o que eu preciso, pois além de listar o conteúdo do diretório, ainda exibe imagens clicáveis.

Resumindo, é perfeito para minhas intenções, com exeção do lance de exibir outros arquivos que não pretendo mostrar.

Gente... Uma ajudinha?

#4 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 13/12/2007, 06:08

Você olhou os links postados?

http://br2.php.net/glob

Glob é uma alternativa eficiente para essa sua função acima. Na página do manual tem diversos exemplos de uso nos comentários, usando o foreach que faz o loop. E o q seriam arquivos indesejados ? Alguma extensão específica ou alguns arquivos com extensão diferente ?
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#5 Pahabo

Pahabo

    Turista

  • Usuários
  • 25 posts
  • Sexo:Não informado

Posted 14/12/2007, 18:21

Você olhou os links postados?

Olhei sim, mas como expliquei, não sou programador. Não saberia nem onde alterar as entradas.

E o q seriam arquivos indesejados ? Alguma extensão específica ou alguns arquivos com extensão diferente ?

Todos os arquivos indesejados possuem a extensão ".inc".

#6 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 14/12/2007, 20:49

Se você não é programador, e não sabe alterar, como vai resolver o problema ?

Se quiser que alguém faça pra você, temos uma área de classificados no fórum.
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#7 Pahabo

Pahabo

    Turista

  • Usuários
  • 25 posts
  • Sexo:Não informado

Posted 17/12/2007, 20:31

Meu querido, eu só queria que alguém me dissesse "inclua a esta linha xyz aqui e o problema está resolvido".
Não quero que alguém desenvolva um sistema, o sistema já está pronto. Existe apenas um pequeno detalhe que gostaria de corrigir, se for possível.

Pessoal, continuo precisando de ajuda.
Alguem sabe como modificar este código, de modo que não exiba os arquivos ".inc"?

#8 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 18/12/2007, 07:48

Meu chapa, se fosse só alterar uma linha seria fácil demais. Nem precisaríamos de programadores ... <_<

Esse quote abaixo tem o que você precisa, é muito simples, vai que você consegue:

Amigo, evite de usar dessa forma.

Veja:
glob()
foreach()

Muito mais eficiente :D
Até mais ^_^


Quando você demonstrar interesse e postar um código que tentou fazer, com certeza irá receber mais suporte de outros usuários também.
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#9 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 18/12/2007, 08:02

<?php

foreach( glob("arquivos/*") as $file )
{
	$info = pathinfo($file);

	if( $info['extension'] != "inc" )
	{
		echo "<a href='" . $file . "'>";
		echo "<img src='" . $file . "' width='150' height='150' alt='' />";
		echo "</a>&nbsp;&nbsp;";
	}
}

?>

Se ao menos você tivesse lido os links postados você chegaria nesta resposta.

Não precisa nem ser programador para entender os objetivos destas funções. Simples assim.

E evite posts do tipo "Help", "Ajuda" e etc somente para o seu tópico ficar visível, tenha um pouco de paciência.

Flws...
(y)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#10 Pahabo

Pahabo

    Turista

  • Usuários
  • 25 posts
  • Sexo:Não informado

Posted 20/12/2007, 00:55

Caramba, não tô entendendo porque tanta bronca.
Existem centenas de tópicos aqui pedindo ajuda pra pequenas correções em scripts, e nunca lí alguem orientando às pessoas à aprenderem programação. Eu só pedi ajuda pra modificar um detalhe na função de um script... E fazem 10 dias que espero por uma resposta de boa vontade, não pensei que fosse encontrar pessoas querendo pagamento.

Paulo André, obrigado pelo código, mas encontro o seguinte erro:
Fatal error: Call to undefined function: glob() in E:\apache\htdocs\tmp1twhatbxds.php on line 3


#11 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 20/12/2007, 08:21

A questão não é nem aprender a programar e sim apenas ler, não tem como ser mais claro que o manual, por isso muitas vezes nós orientamos um simples leitura de uma determinada função do manual para que a pessoa possa entender.


Quanto ao erro, seu PHP provavelmente deve ser pré-histórico. :D

Qual a versão?

Ajustei o seu código, teste ai, apesar do primeiro que postei ser muito mais eficaz.

<?php

if( $handle = opendir('arquivos/.') )
{
	while( false !== ($file = readdir($handle)) )
	{
		$info = pathinfo($file);
		
		if( $file != "." && $file != ".." && $info['extension'] != "inc" )
		{
			echo "<a href="; echo '"arquivos/'; echo "$file\">";
			echo "<img src="; echo '"arquivos/'; echo "$file\" width='150' height='150'>";
			echo '</a>';
			echo '&nbsp;&nbsp;';
		}
	}

	closedir($handle);
}

?>

Flws...
(ok2)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#12 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 20/12/2007, 08:43

Você deveria pensar em atualizar a versão do seu PHP. São poucos os hosts que ainda lutam pra manter a 4.3 ... A maioria já usa a versão 5, sendo que a 6 está em desenvolvimento .... Glob é de longe mais prática que opendir.....
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#13 Pahabo

Pahabo

    Turista

  • Usuários
  • 25 posts
  • Sexo:Não informado

Posted 20/12/2007, 23:28

Bom pessoal, obrigado pela ajuda e pelas dicas.

Meu PHP de fato é antigo (4.0), mas só do servidor local. Quando enviei o script do Glob pro host que usa uma versão mais atualizada, funcionou corretamente.

Novamente agradeço pela ajuda, os dois códigos ficaram perfeitos!

#14 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 21/12/2007, 07:46

Se no host funcionou o glob, logo é mais atualizado. Se é mais atualizado, verifique se já não é a versão 5.

Se no host for a versão 5, atualize o seu local para a versão 5 também e desfrute do SPL

A mesma coisa que o Paulo fez com while, opendir e etc. Você faz num foreach de duas ou três linhas com essa classe nativa do PHP 5.

Edição feita por: Bruno Augusto, 21/12/2007, 07:47.





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq