Jump to content


Photo

Selecionar/ignorar Arquivos "com Princípio Determinado"


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

#1 EduardoPG

EduardoPG

    Normal

  • Usuários
  • 73 posts
  • Sexo:Não informado
  • Localidade:Ribeirão Pires / SP
  • Interesses:JESUS, minha familia, meus irmãos.

Posted 04/03/2007, 12:28

Bom dia pessoal,

Quero fazer o seguinte, e preciso de uma ajuda!
Numa determinada pasta, tenho arquivos de imagens tamanhos normais e alguns small's (thumbs)
Os normais, tem o seu nome pré-determinado e os small's com o princípio "thumb_", ex:
  • Arquivo normal: img001.jpg
  • Arquivo thumb: thumb_img001.jpg
Preciso em uma determinada página, selecionar apenas os arquivos "normais", e ignorar os "thumbs" e em outra página, o contrário, selecionar os "thumbs" e ignorar os "normais".

Se for possível, apenas numa linha de código.

Grato! :D
Sds., EduardoPG
Se a tua vida anda normal d+, experimente renovar, experimente JESUS.

#2 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 04/03/2007, 12:48

Bem isso é simples basta usar um "glob" e "substr" e pronto :) ...
Vc deve listar os arquivos que estão dentro da pasta e verificar se tem ou não a extensão ...

Esse aqui mostra somente as imagens que contenha "thumb_" na sua frente!
<?php
$filenames = glob("sua_pasta_de_imagens/{*.jpg,*.JPG,*.gif,*.GIF}", GLOB_BRACE);
foreach ($filenames as $nome_img) {
 if (substr($nome_img, 0, 6) == "thumb_") {
  echo $nome_img . "<br>";
 }
}
?>

Bem esse é igual ao de cima a unica diferença é essa "!=" ou seja mostra arquivos que não começam com "thumb_"!
<?php
$filenames = glob("sua_pasta_de_imagens/{*.jpg,*.JPG,*.gif,*.GIF}", GLOB_BRACE);
foreach ($filenames as $nome_img) {
 if (substr($nome_img, 0, 6) != "thumb_") {
  echo $nome_img . "<br>";
 }
}
?>

Não é em uma linha :wacko: (nem tem como) mas é um código pequeno :P

#3 EduardoPG

EduardoPG

    Normal

  • Usuários
  • 73 posts
  • Sexo:Não informado
  • Localidade:Ribeirão Pires / SP
  • Interesses:JESUS, minha familia, meus irmãos.

Posted 04/03/2007, 15:28

sk15, testei mas não obtive sucesso, por dois motivos:

1º) O script retornou nomes, e acho que me expressei mal, mas eu queria retornar o próprio arquivo (a imagem), não o nome dele;
2º) Ele só funcionou com o segundo código (com o "!="), e mesmo assim, não fez ascepção, retornou todos os arquivos da pasta, com "thumb_" e sem.

Se puder continuar me ajudando, fico grato!

Edição feita por: EduardoPG, 04/03/2007, 15:29.

Sds., EduardoPG
Se a tua vida anda normal d+, experimente renovar, experimente JESUS.

#4 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 04/03/2007, 15:45

1º) O script retornou nomes, e acho que me expressei mal, mas eu queria retornar o próprio arquivo (a imagem), não o nome dele;

Mas isso é problema de HTML :wacko: no lugar do nome da imagem coloque a TAG em HTML de imagem .... era só um exemplo ... auauaua ...
echo '<img src="' $nome_img . '" border="0"><br>";

2º) Ele só funcionou com o segundo código (com o "!="), e mesmo assim, não fez ascepção, retornou todos os arquivos da pasta, com "thumb_" e sem.

Vc quer dizer "ascepção" no sentido de organizar em algum ordem?
Se for ai complica um pouco forcado vc a fazer 2 arrays .... mas primeiro vamos resolver a exibição depois vem o ordenamento ....

A mais uma opbservação eu esqueci de um detalhe ... pos isso deve estar dando erro ... :assobio:
Eu esqueci que a função "Glob" retorna são somente a imagem como também o caminho da imagem ... dai o "substr" fica inutiu ...

Códigos re-arrumados ...
1º ....
<?php
$filenames = glob("sua_pasta_de_imagens/{*.jpg,*.JPG,*.gif,*.GIF}", GLOB_BRACE);
foreach ($filenames as $nome_img) {
 if (substr(strstr($nome_img, "thumb_")) {
  echo '<img src="' $nome_img . '" border="0"><br>";
 }
}
?>

2º
<?php
$filenames = glob("sua_pasta_de_imagens/{*.jpg,*.JPG,*.gif,*.GIF}", GLOB_BRACE);
foreach ($filenames as $nome_img) {
 if (!substr(strstr($nome_img, "thumb_")) {
  echo '<img src="' $nome_img . '" border="0"><br>";
 }
}
?>

Eu testei aqui e ta funcionado ....

Edição feita por: sk15, 04/03/2007, 15:45.


#5 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 04/03/2007, 15:45

POG... :assobio:

Faça a busca pelos arquivos diretamente pela função glob():

$aImages = glob('./images/img{*.jpg,*.JPG}', GLOB_BRACE);
$aThumbs = glob('./images/thumb_img{*.jpg,*.JPG}', GLOB_BRACE);
[]’s :DAté mais

#6 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 04/03/2007, 15:47

POG... :assobio:

Faça a busca pelos arquivos diretamente pela função glob():

$aImages = glob('./images/img{*.jpg,*.JPG}', GLOB_BRACE);
$aThumbs = glob('./images/thumb_img{*.jpg,*.JPG}', GLOB_BRACE);
[]’s :D


Realmente eu adoro POG .... :unsure:
Eu particulamente não gosto da "glob" prefiro usar "readdir"...

#7 EduardoPG

EduardoPG

    Normal

  • Usuários
  • 73 posts
  • Sexo:Não informado
  • Localidade:Ribeirão Pires / SP
  • Interesses:JESUS, minha familia, meus irmãos.

Posted 05/03/2007, 09:20

Bom dia pessoal,
Cá estou eu "pertubando" novamente.

Como faço, conforme o script acima, determinado o local (pasta) das minhas imagens, retornar somente o nome do arquivo, sem o caminho.
  • Ex.:
  • Arquivo em: "/home/minhapasta/img001.jpg";
  • Retronar só: "img001.jpg".
Obrigado e desculpem o incômodo!

Edição feita por: EduardoPG, 05/03/2007, 09:20.

Sds., EduardoPG
Se a tua vida anda normal d+, experimente renovar, experimente JESUS.

#8 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 05/03/2007, 10:51

basename() ;)

[]’s :DAté mais

#9 EduardoPG

EduardoPG

    Normal

  • Usuários
  • 73 posts
  • Sexo:Não informado
  • Localidade:Ribeirão Pires / SP
  • Interesses:JESUS, minha familia, meus irmãos.

Posted 05/03/2007, 11:18

Isso mesmo que queria Paulo,
Muito obrigado mano.

Grande abraço!
Sds., EduardoPG
Se a tua vida anda normal d+, experimente renovar, experimente JESUS.




0 user(s) are reading this topic

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

IPB Skin By Virteq