Jump to content


Photo

Descobrir E Pegar A Extenção...


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

#1 portalwebmaster

portalwebmaster

    kd as minas???

  • Usuários
  • 137 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP

Posted 04/12/2005, 13:47

Bom galera seguinte.

to tentando pensar como fazer isto, tenho amis ou menos na mente, mas vamos lá ver se alguem te idéia melhor.

eu tenho em um diretório os seguintes arquivos...


[PASTA]
- 1.zip
- 23.zip
- 44.html
- 213.tar.gz
- 347.txt

bem é só um exemplo, mas é mais ou menos assim cada pasta, então quero fazer o seguinte o script vai chamar o arquivo 23 por exemplo, só que nãos e sabe qual é a extenção deste arquivo então quero o seguinte o script verifica qual a extenção do arquivo 23 (lembrando que não haverá numeros repetidos ou seja só existira um 23, só que não sabe-se ainda a extenção dele, eu quero que o script descubrar qual é a extenção do arquivo 23, para saber se é .zip, .html, .tar.gz e assim por diante e adicione ai arquivo.

ou seja depois que ele descobrir qual é a extenção deste arquivo ele complete para que eu possa dar a url para o usuário baixar o arquivo ficando 23.zip sakou?

ta meio confuso né galera, veja mais ou menos o que pensei.



if(file_exists("$id.zip")){
$arquivo = $id.zip";
}elseif(file_exists("$id.html")){
$arquivo = $id.html";
}elseif(file_exists("$id.tar.gz")){
$arquivo = $id.tar.gz";
}elseif(file_exists("$id.txt")){
$arquivo = $id.txt";
}

acho que assim daria certo, mas eu quero mais uma coisa, ao identificar a extenção eu quero que ele pegue o nome desta extenção apra eu chamar a imagem da extenção tipo se foi .zip a extenção ele vai chamar a imagem zip.jpg da pra entender...

ai acho que eu teria que usar o explode é isto?

alguem tem uma idéia melhor que a minha por ai? ou um modo mais simples?

#2 Paulo Freitas

Paulo Freitas

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

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

Posted 04/12/2005, 15:08

Se você tivesse usado a busca, tua resposta teria sido bem mais rápida, pois como o assunto é bem discutido, tópicos é o que não faltam. :D

explode() seria uma solução, porém, uma solução "tosca". A melhor solução para teu caso é esta:

<?php

$caminho = './diretorio/arquivo.extensao';

$extensao = pathinfo($caminho, PATHINFO_EXTENSION);

?>
[]’s :DAté mais

#3 portalwebmaster

portalwebmaster

    kd as minas???

  • Usuários
  • 137 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP

Posted 04/12/2005, 22:48

ok desculpe, é que não consegui fazer a pesquisa com a palavra certa apra o que eu queria saka.

com este comando eu vou conseguir saber qual a extenção de um arquivo coocando apenas o nome dele?

e depois paraselecionar a imagem da extenção?

lembre eu não sei a extenção do arquivo, pis irei identifica-lo pelo id dele no banco de dados.

ou seja sei que quero o arquivo X que ta na pasta y só que não sei a extenção do X e depois de saber quero que ele pegue a extenção que for o arquivo , ou sejatudo que vem após o ponto doarquivo X e nomea-lo como ext.jpg

pensei nisto aki.

f(file_exists("$id.zip")){
$arquivo = $id.zip";
$imagem = "zip.jpg";
}elseif(file_exists("$id.html")){
$arquivo = $id.html";
$imagem = "html.jpg";
}elseif(file_exists("$id.tar.gz")){
$arquivo = $id.tar.gz";
$imagem = "tar.gz.jpg";
}elseif(file_exists("$id.txt")){
$arquivo = $id.txt";
$imagem = "txt.jpg";
}

desculpe não ter usado a pesquisa, novamente mas agora que vi qual o comando que utilizou path_info, vou verificar no manual do php.

vlws!!!

#4 portalwebmaster

portalwebmaster

    kd as minas???

  • Usuários
  • 137 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP

Posted 04/12/2005, 23:22

ai galera vlw.

fiz assim e deu certinho, se alguem tiver uma maneira mais leve de fazer o que quero agradeço..

<?php
if(file_exists("$id.zip")){
$arquivo = "$id.zip";
$imagem = "zip.jpg";
}elseif(file_exists("$id.html")){
$arquivo = "$id.html";
$imagem = "html.jpg";
}elseif(file_exists("$id.tar.gz")){
$arquivo = "$id.tar.gz";
$imagem = "tar.gz.jpg";
}elseif(file_exists("$id.txt")){
$arquivo = "$id.txt";
$imagem = "txt.jpg";
}
?>

t+

#5 Goku Jr

Goku Jr

    Nilson

  • Usuários
  • 3757 posts
  • Sexo:Masculino

Posted 05/12/2005, 06:47

Leia com atenção o que o Paulo Freitas respondeu !!!

e faça "TESTES"

qualquer coisa use o EXPLODE

<?
$Arquivo = 'imagem.jpg';
$Separ = explode('.',$Arquivo);
echo "Nome da imagem é : ".$Separ[0]."<br>";
echo "Extenção da imagem é : ".$Separ[1]."<br><br>";
echo "Arquivo: ".$Arquivo;
?>

T+
-----------------------------------------------------------------------
PALMEIRAS - Primeiro campeão do mundo em 1951

#6 portalwebmaster

portalwebmaster

    kd as minas???

  • Usuários
  • 137 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP

Posted 05/12/2005, 18:25

Olá Goku,

Isso que você colocou ai eu sei fazer, lei atentamente apra ver o que quero fazer.

vou tentar explicar dnovo.

sei que o arquivo que eu quero ta na pasta X

dentro desta pasta X eu tenho os seguintes arquivos por exemplo

10.zip
25.zip
35.html
130.tar.gz


bem fiz um sistema que vai baixar para o usuário o arquivo 10, só que no sistema eu só tenho o nome do arquivo, sei q quero o arquivo 10, más não sei a extenção dele , ou seja sei apenas que o nome dele é 10 e esta na pasta X.

portanto ele pode ser .zip, .html, .tar.gz e assim por diante.

o que quero é ele descobrir qual a extensão do arquivo 10 que ta na pasta X.

compreendeu agora o que quero? sei que é meio complicato, más de uma olhada no que fiz para resolver isso no post acima que acho que irá ajudar a compreender o que to tentando fazer de modo mais leve.

t+

#7 offspring

offspring

    O_o

  • Ex-Admins
  • 946 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 05/12/2005, 18:57

http://phpbrasil.com...icle.php/id/666


Re: ler o mime type
publicado por Felipe Lopes (usuário autenticado) - 2003-12-23 11:34:05

O melhor jeito de se ver a extensão de um arquivo eh usando a seguinte variavel

$_FILES['arquivo'][type]

Isso retorna o MIME type do arquivo. Ex: image/jpg


#8 offspring

offspring

    O_o

  • Ex-Admins
  • 946 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 05/12/2005, 18:57

http://phpbrasil.com...icle.php/id/666


Re: ler o mime type
publicado por Felipe Lopes (usuário autenticado) - 2003-12-23 11:34:05

O melhor jeito de se ver a extensão de um arquivo eh usando a seguinte variavel

$_FILES['arquivo'][type]

Isso retorna o MIME type do arquivo. Ex: image/jpg


#9 portalwebmaster

portalwebmaster

    kd as minas???

  • Usuários
  • 137 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP

Posted 06/12/2005, 16:34

hehe, vlw off, mas novamente não é exatamente isso que quero, pois para ele verificar o mime do arquivo ele precisa saber o nome do arquivo que vai verificar, só que não é possivel eu dizer ao sistema que vai identificar o mime qual é o noe do arquivo completo, pois só tenho o nome dele sem extensão e no servidor ele está completo com extensão entendeu.

bem ja resolvi isto, se quizer pode fechar o tópico.

resolvi da seguinte maneira:

<?php
if(file_exists("$id.zip")){
$arquivo = "$id.zip";
$imagem = "zip.jpg";
}elseif(file_exists("$id.html")){
$arquivo = "$id.html";
$imagem = "html.jpg";
}elseif(file_exists("$id.tar.gz")){
$arquivo = "$id.tar.gz";
$imagem = "tar.gz.jpg";
}elseif(file_exists("$id.tar")){
$arquivo = "$id.tar";
$imagem = "tar.jpg";
}elseif(file_exists("$id.txt")){
$arquivo = "$id.txt";
$imagem = "txt.jpg";
}
?>

flws!!!

#10 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 06/12/2005, 19:28

Não sei se entendi direito mas...

Da pra fazer isso de outra forma...

Use glob() para varrer a pasta, em cada arquivo listado(eles viram em array() ) voce vai passar um substr() pegando as ultimos tres caracteres e depois use o echo() pra imprimir(claro :) )

Exemplo:
foreach(glob("imagens/*.*") as $arquivo){

$nome = substr($arquivo, -3);

echo $nome."\n";

}
Acho que seria isso mesmo

Falopa!

#11 portalwebmaster

portalwebmaster

    kd as minas???

  • Usuários
  • 137 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP

Posted 07/12/2005, 00:18

Não sei se entendi direito mas...

Da pra fazer isso de outra forma...

Use glob() para varrer a pasta, em cada arquivo listado(eles viram em array() ) voce vai passar um substr() pegando as ultimos tres caracteres e depois use o echo() pra imprimir(claro :) )

Exemplo:

foreach(glob("imagens/*.*") as $arquivo){

$nome = substr($arquivo, -3);

echo $nome."\n";

}
Acho que seria isso mesmo

Falopa!

hehe, kra essa ta dificil ainda não é isto mas obrigado enquanto ninguem diz uma maneira mais leve vou usando as sentenças acima hehe.

claro que com esa ai também dava para fazer, mas ficaria mais complexa que a maneira que achei...

#12 Paulo Freitas

Paulo Freitas

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

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

Posted 07/12/2005, 00:47

Não sei se entendi direito mas...

Da pra fazer isso de outra forma...

Use glob() para varrer a pasta, em cada arquivo listado(eles viram em array() ) voce vai passar um substr() pegando as ultimos tres caracteres e depois use o echo() pra imprimir(claro :) )

Exemplo:

foreach(glob("imagens/*.*") as $arquivo){

$nome = substr($arquivo, -3);

echo $nome."\n";

}
Acho que seria isso mesmo

Falopa!

A única coisa que eu implementaria neste caso seria o nome do arquivo. :P
Como ele já sabe o nome do arquivo, basta usar nome_do_arquivo.* (curinga). Assim, a busca fica bem mais rápida e funcional. ^_^

Sendo assim, tendo apenas 1 arquivo com este nome, não importando sua extensão, ficaria fácil de achá-la (extensão). :)

Veja:
<?php

$file_ext = pathinfo(end(glob('./diretorio/nome_do_arquivo.*', GLOB_BRACE)), PATHINFO_EXTENSION);

?>
[]’s :DAté mais

#13 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 07/12/2005, 10:02

Calma homem smile hahhah

eu so tava dando um exemplo tanto que nem usei o modo GLOB_BRACE...

Bom toda forma eu nem tinha pensado em passar esta teoria pra ele... mas ta ai agora hehe

Falopa!

#14 portalwebmaster

portalwebmaster

    kd as minas???

  • Usuários
  • 137 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP

Posted 08/12/2005, 15:38

opa parece que finalmente me entenderam hehehe

vo testar este ai acima e ver no que da.

vlws... ;-)

#15 portalwebmaster

portalwebmaster

    kd as minas???

  • Usuários
  • 137 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP

Posted 08/12/2005, 15:58

hum teve um pequeno probleminha.

veja só.

fiz o seguinte teste.

o arquivo 164.tar.gz

indiquei somente o numero dele ai envez dele mostrar a extensão .tat.gz ele mostrou apenas gz

ja os outros arquivos ele mostra normal.

acho que agora então a melhor maneira seria esta.

<?php
if(file_exists("$id.tar.gz")){
$extensao = "tar.gz";
}else{
$extensao = pathinfo(end(glob('$id.*', GLOB_BRACE)), PATHINFO_EXTENSION);
}

echo "A extenção do arquivo é: $extensao";
?>

ou será que existe outra forma?

vi um caso semelhante eno manual
http://br.php.net/ma...on.pathinfo.php
tem lá nos comentarios uma pessoa falando se o arquivo for tar.gz que ele mostra apenas gz

"If a file has more than one 'file extension' (seperated by periods), the last one will be returned.
For example:
<?php
$pathinfo = pathinfo('/dir/test.tar.gz');
echo 'Extension: '.$pathinfo['extension'];
?>
will produce:
Extension: gz

and not tar.gz "




1 user(s) are reading this topic

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

IPB Skin By Virteq