Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 57

PHP regex para pegar nome do arquivo

05-04-2010 16:11

Pessoal preciso pegar só o nome e extenção da imagem passada em um input text usando regex, só que não estou conseguindo, estou usando o preg_match_all e ele não está respondendo conforme está na apostila que baixei no aurelio verde.
Usei uma instrução que serve para negar a pusca e exibir o restante, usei isso "[^.+/]", pelo que estudei tudo que estiver dentro de [^] será negado, ou seja não é para me exibir, o ponto é para pegar qualquer caracter dentro da consulta o + e o / está dizendo que é para pegar qualquer caractere até a parra "/", com isso se o conteudo for c:/servidor/teste/imagem.jpg é para me retornar só imagem.jpg sendo que estou negando todo o caractere que vai do inicio até "/", mas ele está me retornando o contrário??? "c:/servidor/teste/" :?: , o que devo fazer para negar a instrução? será que para o php o regex comporta diferente? segue o codigo onde parei.

<?php $imagem = $_POST["inserir_dado"]; preg_match_all( "[^.+/]", $imagem, $result); echo "O nome da Imagem é:".$result[0][0]; ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

PHP regex para pegar nome do arquivo

05-04-2010 16:44

Pode indicar a apostila?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 57

PHP regex para pegar nome do arquivo

05-04-2010 17:22

segue o link http://linuxfocus.berlios.de/Portugues/July1998/article53.html
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

PHP regex para pegar nome do arquivo

05-04-2010 18:06

Eu estou reinstalando o Xampp aqui e não to podendo testar, mas testa esse script

$arquivo = $_POST["arquivo"]; if(ereg("^\/.*\/([^\/]+)$", $arquivo, $valor)) { echo "O nome é ".$valor[1]; } 

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 57

PHP regex para pegar nome do arquivo

06-04-2010 10:17

Me retornou em branco,
segue o que fiz.
codigo php formulario

<html> <head> </head> <body> <form action="so_nome.php" method="post"> <input type="text" name="valor" id="valor" value="http://www.teste.com.br/local/nestapasta/imagem.jpg"/> <input type="submit"/> </form> </body> </html>

codigo php submit

<?php $arquivo = $_POST["valor"]; if(ereg("^\/.*\/([^\/]+)$", $arquivo, $valor)) { echo "O nome é ".$valor[1]; } ?>

Testando o meu codigo, criei uma pasta para onde iria as imagens e assim ficou fácil identificar a pasta pelo regex, pelo que me parece a instrução [^] não nega, então usei dessa forma, que me retornou /teste/imagem.jpg, que era o que eu procurava, só que está extranho pois não segue a regra do regex, para o codigo dar certo precisei colocar entre [], estou pesando que que é alguma restrição do php. :-(

preg_match_all("[/teste/.+$]", $imagem, $filtro_final); 

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

PHP regex para pegar nome do arquivo

06-04-2010 16:44

Tem uma forma mais seguro que acho que é usando o basename, para recuperar o nome do arquivo com base na URL passada

<?php $arquivo = "http://www.site.com/pasta/maispasta/arquivo.html"; echo basename($arquivo); ?>

1
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado