Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

EN2010

Interpretar tag HTML dentro de variável

Recommended Posts

Pessoal, parabéns pelo fórum.

 

Seguinte sou iniciante em PHP e estou com uma dúvida que não consegui achar em lugar algum.

 

Eu criei uma aplicação que lê um banco MySQL contendo tags HTML. Daí dentro de um HTML eu leio estas tags para dentro de uma array e desejo simplesmente interpretá-las como HTML mesmo... O que acontece é que ela vem sempre como texto e não monta a página dinamicamente.

 

Explicando melhor o Banco de Dados eu tenho a seguinte:

 

<iframe width="220" height="220" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&source=s_q&hl=pt-BR&geocode=&q=Rua+Jo%C3%A3o+Reffo,+872,+Curitiba+-+Paran%C3%A1,+Brasil&sll=-25.408082,-49.349899&sspn=0.020157,0.033903&ie=UTF8&hq=&hnear=R.+Jo%C3%A3o+Raffia,+872+-+Santa+Felicidade,+Curitiba+-+Paran%C3%A1,+82410-000,+Brasil&ll=-25.385751,-49.335051&spn=0.017059,0.018969&z=14&iwloc=A&output=embed"></iframe>
<br /><small>
<a href="http://maps.google.com/maps?f=q&source=embed&hl=pt-BR&geocode=&q=Rua+Jo%C3%A3o+Reffo,+872,+Curitiba+-+Paran%C3%A1,+Brasil&sll=-25.408082,-49.349899&sspn=0.020157,0.033903&ie=UTF8&hq=&hnear=R.+Jo%C3%A3o+Reffo,+872+-+Santa+Felicidade,+Curitiba+-+Paran%C3%A1,+82410-000,+Brasil&ll=-25.385751,-49.335051&spn=0.017059,0.018969&z=14&iwloc=A" style="color:#0000FF;text-align:left">Exibir mapa ampliado</a>
</small>

Isto é uma TAG DO GOOLE para apresentar um mapa:

 

Dai eu leio o banco de dados e coloco esta TAG dentro de um array, em seguida tento montar a página para ele executar esta TAG e mostrar o mapa... mas nada funciona...

 

a última coisa que tentei foi o seguinte:

 

<div style="margin-top:10px;"> <? echo $partner['location']; ?> </div>

Ele roda a página html e exibe o texto que está dentro da variável sem interpretá-lo como HTML. Preciso mostrar o mapa na página dinamicamente somente isso...

 

 

Alguém pode ajudar????

 

grato

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá EN2010.

 

Você já chegou a dar uma lida nas Orientações para uma boa participação?

 

Poste seu código, por gentileza, e verifique primeiramente o código-fonte originado pela página. Quando queremos saber se uma página está originando um código html, o melhor meio não é o visual, mas o que está por trás dos bastidores.

Poste as funções utilizadas antes de exibir o código HTML na página, e muito importante: veja se realmente no banco de dados está com as tags html.

 

Aguardo seu retorno para que possa te ajudar melhor.

 

Um abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Matheus, obrigado pelo retorno.

 

Olha é muito mais simples do que imaginas. Eu que não conheço PHP direito mesmo.

 

Toda a página HTML está funcionando perfeito e ela é muito grande para postar aqui. O único problema que tenho é que neste exata linha eu não consigo que a variável seja interpretada como uma tag HTML. Não sei como fazer isso.

 

A linha "<div style="margin-top:10px;"> <? echo $partner['location'] ?> </div>" desta página ao invés de exibir o conteúdo de $partner['location'] que é a tag html iframe que postei anteriomento, ela exibe o texto mostrando na tela toda a tag.

 

O que você precisa para me ajudar? Se for preciso posto a página inteira aqui.

 

Pf preciso resolver este problema e não consegui encontrar nada a respeito.

 

Abs

 

EN2010

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahhhh!

 

Já entendi amigão.

As tags estão sendo salvas no BD em forma de caracteres ASCII.

Utilize str_replace ou preg_replace para convertê-las em tags de abertura html "<" e ">".

 

Tente fazer e poste seus resultados. Depois volto aqui.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho sim!

 

$string = '<b>Oi amiguinho</b>';
$string = str_replace('<', '<', $string);
$string = str_replace('>', '>', $string);

Ou ainda:

 

$string = '<b>Oi amiguinho</b>';
$antes  = array('$lt;','>');
$depois = array('<','>');
$string = str_replace($antes, $depois, $string);

[]s!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro amigo, Obrigado. Já consegui evoluir, porém não deu certo ainda.

 

Vamos ao que fiz e os resultados:

 

Criei a seguinte função no topo da página HTML:

<?php

 

Function txtTohtml($txt) {

// Transforms txt in html

 

$string = $txt;

$string = str_replace('<', '<', $string);

$string = str_replace('>', '>', $string);

 

return $string;

 

}

?>

 

Daí fiz a chamada da função no corpo do HTML da seguinte forma:

...

<!-- ${$partner['location'] = txtTohtml($partner['location'])}-->

<div style="margin-top:10px;"> {$partner['location']} </div>

...

 

Quando executo o arquivo .HTML ele interpreta como HTML porém não mostra o conteúdo correto.

 

O conteúdo que tem em $partner['location'], provindo do banco de dados é:

 

<iframe width="220" height="220" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&source=s_q&hl=pt-BR&geocode=&q=Rua+Jo%C3%A3o+Reffo,+872,+Curitiba+-+Paran%C3%A1,+Brasil&sll=-25.408082,-49.349899&sspn=0.020157,0.033903&ie=UTF8&hq=&hnear=R.+Jo%C3%A3o+Reffo,+872+-+Santa+Felicidade,+Curitiba+-+Paran%C3%A1,+82410-000,+Brasil&ll=-25.385751,-49.335051&spn=0.017059,0.018969&z=14&iwloc=A&output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=q&source=embed&hl=pt-BR&geocode=&q=Rua+Jo%C3%A3o+Reffo,+872,+Curitiba+-+Paran%C3%A1,+Brasil&sll=-25.408082,-49.349899&sspn=0.020157,0.033903&ie=UTF8&hq=&hnear=R.+Jo%C3%A3o+Reffo,+872+-+Santa+Felicidade,+Curitiba+-+Paran%C3%A1,+82410-000,+Brasil&ll=-25.385751,-49.335051&spn=0.017059,0.018969&z=14&iwloc=A" style="color:#0000FF;text-align:left">Exibir mapa ampliado</a></small>

Ele não mostra o mapa, mas cria um iframe corretamente.

 

O que fiz de errado?

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo EN2010, eu copiei o código que gera o iframe corretamente que você postou e salvei em um arquivo texto.

Depois renomeei o mesmo para teste.html e executei.

 

Aqui funcionou perfeitamente. :huh:

Já experimentou fazer este teste?

 

Pode ser que tenha alguma aspa ou vírgula conflitando com o restante do código ou uma tag sem fechar ou caracteres a mais.

Por isso dentro do PHP não esta saindo correto. As vezes é o cache do browser. Se funciona em um arquivo html normal tem

que funcionar ai também.

 

Da uma limpada no histórico do navegador e ve o que acontece.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, tb fiz este teste e funcionou perfeitamente. Porém quando coloco na base de dados este tag HTML e executo a aplicação não funciona.

 

O texto extraído do campo na tabela MySQL é o seguinte:

 

<iframe width="200" height="200" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=pt-BR&amp;geocode=&amp;q=Rua+Ant%C3%B4nio+Stival,+Curitiba+-+Paran%C3%A1,+Brasil&amp;sll=-25.38576,-49.33505&amp;sspn=0.010081,0.016952&amp;ie=UTF8&amp;hq=&amp;hnear=R.+Ant%C3%B4nio+Stival+-+Santa+Felicidade,+Curitiba+-+Paran%C3%A1,+82400-060,+Brasil&amp;ll=-25.396762,-49.337969&amp;spn=0.015507,0.01708&amp;z=14&amp;iwloc=A&amp;output=embed"></iframe><br /><br />

 

Já analisei a fundo e não consigo encontrar o erro....

 

Podes ajudar???

 

grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então amigo o que eu quis te dizer é que se o código html está correto

e funciona (após a conversão conforme citou nosso amigo Matheus) então

significa que o erro está envolta do código convertido e não no código

própriamente dito.

 

Mas para acabar com esta duvida você pode colocar uma string com o seguinte

código:

 

$string = '<iframe width="220" height="220" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://www.google.com.br"></iframe><br'>http://www.google.com.br"></iframe><br /><small><a href="http://www.google.com.br" style="color:#0000FF;text-align:left">Exibir mapa ampliado</a></small>';

<div style="margin-top:10px;"> <?php echo $string; ?> </div>
Veja se ele carrega normalmente o site do google.

Se carregar significa que o erro está ainda no código convertido.

Ai você tem que procurar por mais códigos como o <

Tem lugares que tem & e > também.

 

Outra coisa que reparei são códigos como &amp;

 

Talvez tenha que ser &&

 

Da uma revisada procurando códigos que terminam com ; pois precisam começar com &

 

Talvez seja o caso apenas de acrescentar alguns & ao invés de converter os &

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então amigo o que eu quis te dizer é que se o código html está correto

e funciona (após a conversão conforme citou nosso amigo Matheus) então

significa que o erro está envolta do código convertido e não no código

própriamente dito.

 

Mas para acabar com esta duvida você pode colocar uma string com o seguinte

código:

 

$string = '<iframe width="220" height="220" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://www.google.com.br"></iframe><br'>http://www.google.com.br"></iframe><br /><small><a href="http://www.google.com.br" style="color:#0000FF;text-align:left">Exibir mapa ampliado</a></small>';

<div style="margin-top:10px;"> <?php echo $string; ?> </div>
Veja se ele carrega normalmente o site do google.

Se carregar significa que o erro está ainda no código convertido.

Ai você tem que procurar por mais códigos como o <

Tem lugares que tem & e > também.

 

Outra coisa que reparei são códigos como &amp;

 

Talvez tenha que ser &&

 

Da uma revisada procurando códigos que terminam com ; pois precisam começar com &

 

Talvez seja o caso apenas de acrescentar alguns & ao invés de converter os &

 

Abraços.

 

 

Amigos, obrigado mesmo pela força. No entanto não conheço tanto PHP assim. Se a URL convertida está com problemas então a conversao não está funcionando? O que mais precisa ser feito? Entendo que se a URL armazenada na base de dados esteja rodando 100% e quando ela é convertida esteja com bug é pq a Function está errada. É isso? O que preciso fazer?

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.