Jump to content


Photo

Strpos - Retirar Endereço Da Imagem


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

#1 lekingdom

lekingdom

    12 Horas

  • Usuários
  • 189 posts
  • Sexo:Não informado

Posted 12/12/2005, 14:44

http://static.php.ne.../images/php.gif
Use filtro solar, nunca deixem de usar filtro solar.

#2 lekingdom

lekingdom

    12 Horas

  • Usuários
  • 189 posts
  • Sexo:Não informado

Posted 12/12/2005, 14:47

http://static.php.ne.../images/php.gif

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...
Use filtro solar, nunca deixem de usar filtro solar.

#3 bdoweb

bdoweb

    Super Veterano

  • Usuários
  • 1641 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 12/12/2005, 15:59

Cara naum entendi nada do q vc está querendo pode ser mais claro?????
Quer ajuda seus amigo e ainda ganhar uma graninha?
Acesse agora mesmo http://yeapiz.com

#4 lekingdom

lekingdom

    12 Horas

  • Usuários
  • 189 posts
  • Sexo:Não informado

Posted 14/12/2005, 10:55

Desculpe se não me expressei como deveria. O que preciso é o seguinte:

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...
Use filtro solar, nunca deixem de usar filtro solar.

#5 Fabyo

Fabyo

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Não informado

Posted 14/12/2005, 16:14

use expressoes regulares muito mais facil

#6 Balala

Balala

    What you want for yourself?

  • Ex-Admins
  • 3357 posts
  • Sexo:Não informado
  • Localidade:Jaraguá do Sul - SC
  • Interesses:http://forum.wmonline.com.br/index.php?showtopic=5792

Posted 14/12/2005, 18:53

É... ERs seriam muuuuito mais simples, mas veja nesse seu código porque não está funcionando:

$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;
Balala - Admin Geral Webfórum - Retired
Twitter
Stop Spreading Lies!
Posted Image

#7 Fabyo

Fabyo

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Não informado

Posted 15/12/2005, 06:23

usando er

$img = "<IMG src=\"http://servidor.com.br/img/imagem.gif\">";

echo preg_replace("#(<img src=\")(.*?)(\">)#i", "\\2", $img);



#8 Balala

Balala

    What you want for yourself?

  • Ex-Admins
  • 3357 posts
  • Sexo:Não informado
  • Localidade:Jaraguá do Sul - SC
  • Interesses:http://forum.wmonline.com.br/index.php?showtopic=5792

Posted 15/12/2005, 06:55

Teria que tratar ainda os casos em que o src não fosse o primeiro atributo:

<img style="..." src="" />

Ficaria assim a ER?!

echo preg_replace("#(<img)(.*?)(src=\")(.*?)(\">)#i", "\\4", $img);

Balala - Admin Geral Webfórum - Retired
Twitter
Stop Spreading Lies!
Posted Image

#9 lekingdom

lekingdom

    12 Horas

  • Usuários
  • 189 posts
  • Sexo:Não informado

Posted 15/12/2005, 08:05

Beleza pessoal......

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>
Use filtro solar, nunca deixem de usar filtro solar.

#10 Balala

Balala

    What you want for yourself?

  • Ex-Admins
  • 3357 posts
  • Sexo:Não informado
  • Localidade:Jaraguá do Sul - SC
  • Interesses:http://forum.wmonline.com.br/index.php?showtopic=5792

Posted 15/12/2005, 08:13

Pensa como foi feito para caso esses atributos venham antes, ;)
Balala - Admin Geral Webfórum - Retired
Twitter
Stop Spreading Lies!
Posted Image

#11 lekingdom

lekingdom

    12 Horas

  • Usuários
  • 189 posts
  • Sexo:Não informado

Posted 15/12/2005, 08:20

Pensa como foi feito para caso esses atributos venham antes, ;)

Usei assim:
$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));
Use filtro solar, nunca deixem de usar filtro solar.

#12 lekingdom

lekingdom

    12 Horas

  • Usuários
  • 189 posts
  • Sexo:Não informado

Posted 15/12/2005, 12:18

Consegui identificar o erro, mas não sei como posso resolve-lo:
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:

$this->corpo = "<img src="http://servidor.com.....br/imagem.jpg"

ai ele vai funcionar perfeitamente.

Então fiquei sem alternativas para tratar este $this->corpo.

Alguma sugestão?

Obrigado por enquanto.
Use filtro solar, nunca deixem de usar filtro solar.

#13 lekingdom

lekingdom

    12 Horas

  • Usuários
  • 189 posts
  • Sexo:Não informado

Posted 16/12/2005, 07:10

Olá pessoal......

Aluém tem mais alguma sugestão que eu possa utilizar para tentar resolver esta nhaka? :angry: :unsure: :huh:

Obrigado desde já.
Use filtro solar, nunca deixem de usar filtro solar.

#14 lekingdom

lekingdom

    12 Horas

  • Usuários
  • 189 posts
  • Sexo:Não informado

Posted 16/12/2005, 09:38

Consegui resolver com um detalhe banal......

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));

Use filtro solar, nunca deixem de usar filtro solar.




1 user(s) are reading this topic

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

IPB Skin By Virteq