
Strpos - Retirar Endereço Da Imagem
#1
Posted 12/12/2005, 14:44
#2
Posted 12/12/2005, 14:47
Pessoal, a dúvida é esta:
preciso retirar somente o endereço neste formato: http://static.php.net/www.php.net/images/php.gif[/URL]
<IMG height=30 "http://static.php.ne...images/php.gif" width=160>
// Verifica se existe imagem no corpo da mensagem.
$pos_i_img = strpos($this->corpo,"http");
$pos_f_img = strpos($this->corpo,".gif");
$endereco_img = substr($this->corpo,$pos_i_img,($pos_f_img));
O que estou fazendo de errado.....
Valeu...
#3
Posted 12/12/2005, 15:59
Acesse agora mesmo http://yeapiz.com
#4
Posted 14/12/2005, 10:55
Preciso tirar o caminho de uma imagem da página.
Ex: deste caminho,
<IMG src="http://servidor.com....mg/imagem.gif">
preciso tirar o caminho assim:
http://servidor.com.br/img/imagem.gif
Até http ele esta pegando certo, mas depois não pega até .gif
Não sei se esta verificação é correta, pois se tiver <a href="http:\\" terei que tratar diferente
O código utilizado é este:
$pos_i_img = strpos($this->corpo,"http"); $pos_f_img = strpos($this->corpo,".gif"); echo "Nº pos_f: " . $pos_f_img."<br>"; $endereco_img = substr($this->corpo,$pos_i_img,($pos_f_img));
Se alguém puder dar uma luz, agradeço...
#5
Posted 14/12/2005, 16:14
#6
Posted 14/12/2005, 18:53
$pos_f_img = strpos($this->corpo,".gif");
Vai retornar a posição onde ele encontrar o ".gif", mas o inicio dela, não após o f, ou seja, fica faltando 4 caracteres.
$pos_f_img = strpos($this->corpo,".gif") + 4;
#7
Posted 15/12/2005, 06:23
$img = "<IMG src=\"http://servidor.com.br/img/imagem.gif\">";
echo preg_replace("#(<img src=\")(.*?)(\">)#i", "\\2", $img);
#9
Posted 15/12/2005, 08:05
Só não estou conseguindo tratar os casos em que a imagem vem com widht="" ou height="" depois da imagem.
Ex:
<IMG height=98 alt="" src="http://forum.wmonlin...s/av-20755.jpg" width=92 border=0>
#11
Posted 15/12/2005, 08:20
Usei assim:Pensa como foi feito para caso esses atributos venham antes,
$pos_f_img = strpos($this->corpo,".gif") +4;
mas não funciona, ele passa e pega 4 dígitos a mais depois do fechamento da tag ">
ou seja:
<IMG height=30 src="http://server.com.br...agens/logo.gif" width=160> aqui vai o texto
Ele pega isto:
[url="http://server.com.br/imagens/logo.gif""]http://server.com.br/imagens/logo.gif"[/url] width=160> aqui
Depois atribuo:
$endereco_img = substr($this->corpo,$pos_i_img,($pos_f_img));
#12
Posted 15/12/2005, 12:18
O código esta assim:
$pos_i_img = strpos($this->corpo,"http"); $pos_f_img = strpos($this->corpo,".jpg")+4; $endereco_img = substr($this->corpo,$pos_i_img,($pos_f_img));
O proble esta no $this->corpo, a $pos_f_img não consegue identificar o .jpg e vai para o final do corpo da mensagem.
Mas se eu colocar um valor fixo para o corpo, tipo:
ai ele vai funcionar perfeitamente.$this->corpo = "<img src="http://servidor.com.....br/imagem.jpg"
Então fiquei sem alternativas para tratar este $this->corpo.
Alguma sugestão?
Obrigado por enquanto.
#13
Posted 16/12/2005, 07:10
Aluém tem mais alguma sugestão que eu possa utilizar para tentar resolver esta nhaka?



Obrigado desde já.
#14
Posted 16/12/2005, 09:38
OBRIGADO PELA FORÇA DE TODOS!!!!
// Retira somente o endereço da imagem. $pos_inicial_img = strpos($this->corpo,"http"); if(preg_match("/.jpg/i", $this->corpo)){ $pos_final_img = strpos($this->corpo,".jpg")+4; }elseif(preg_match("/.gif/i", $this->corpo)){ $pos_final_img = strpos($this->corpo,".gif")+4; } [B] $tamanho_img = $pos_final_img - $pos_inicial_img;[/B] $endereco_img = substr($this->corpo,$pos_inicial_img,($tamanho_img));
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)