Ir para conteúdo
Fórum Script Brasil
  • 0

Pesquisa De Arquivos


salomaojr

Pergunta

Ola a todos...

alguém conhece alguma forma de filtrar o resultado da função readdir??

Eu criei um script para pesquisar arquivos dentro de um diretorio. A estrutura dos arquivos é a seguinte, baseado no formato para a pesquisa 123.456.7890-1:

..\DIR\ARQ_001.TIF (Usando o exemplo acima seria: ..\123\456_001.tif)

Sendo os 3 primeiros numeros o diretorio, os 3 seguintes o nome do arquivo seguido do underline para identificar a imagem 1, 2, 3 etc...

Eu consegui, com a funçao readdir, ler todo o diretorio e criar um link, que quando clicado abre a imagem. Só que eu preciso somente dos arquivos _001.tif, _002.tif, etc... do arquivo especificado (no exemplo: 456*.tif).

Ficou complicado de entender?

Obrigado pela ajuda.

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

Acho que entendi mais ou menos. O que você quer exatamente? Imprimir na página somente os arquivos .tif, ... etc ???

Posta o seu código pra eu ver como você tá fazendo isso.

Falou!

Aqui esta... com esse codigo, todos os arquivos do diretorio são exibidos. Eu quero que somente os arquivos com comecem com 456 (segundo bloco da variavel $str) sejam exibidos...

Obs.: O numero 123.456.7890-1 da variavel $str é somente um exemplo.

<?

$str = 123.456.7890-1;

$pesq = (substr($str,0,3));

$pesq1 = (substr($str,4,3));

$dir = "imagens/plantas/$pesq/";

$abre = opendir($dir);

while (false !== ($arq = readdir($abre))) {

if ($arq != "." && $arq != "..") {

?>

<bgcolor="#F3F3F3"><td width="50%"><p align="left"><a href="<? echo $dir; ?><? echo $arq; ?>" target=_blank><font face="tahoma" size="2"><? echo $arq; ?></td></a>

</tr>

<?

}

}

?>

Link para o comentário
Compartilhar em outros sites

  • 0

Eu diria pra você utilizar REG_EXP...mas acho que você não deve conhecer...

Então você pode fazer o seguinte... dentro daquele while tem um if que impede que os diretórios . e .. sejam exibidos...

while (false !== ($arq = readdir($abre))) {

if ($arq != "." && $arq != "..") {

Mas no caso ali está errado...seria OR [ || ] e não AND [ && ]...altera a parte que tem o && para ||...

O que você teria que fazer é colocar um outro OR ali dentro utilizando a função substr() pra pegar só os 3 primeiros caracteres e ver se eles são "456"..

Tipo um:

if(substr($variavel,0,3)=="456"){

  codigo

}

Link para o comentário
Compartilhar em outros sites

  • 0

Hmmm... essa pesquisa que não existe seria o que? não ter nenhum arquivo???

Deveria parar o while se não tiver nenhum arquivo...

Tenho um script meu que faz essa indexação aqui... ele não entra em loop e usa o mesmo sistema... testei até colocando com um arquivo de nome "0"... ele não encontrou o arquivo... mas também não entrou em loop...estranho isso... huh.gif

Outra coisa...não precisa daquele "!== false" ali:

while (false !== ($arq = readdir($abre))){

Eu usaria:

while ($arq = readdir($abre)){

Tenta assim... cool.gif

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...