Ir para conteúdo

Arquivado

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

Martyns

Navegação HTML em String PHP

Recommended Posts

Pessoal, boa tarde! Num sistema que estou desenvolvendo, preciso de informações de um site externo. Como este usa um interpretador javascript, fica complicado usar cURL (se alguém souber como fazer, vale também). Daí, eu pensei em carregar o site em um iframe e pedir ao usuário realizar o login. Quando o login for efetuado, o sistema deve pegar o conteúdo do iframe. Aí chega a parte mais complicada. Esse conteúdo recebido será um código imenso HTML. (Desenvolvido em 2004, esse sistema apresenta até 16 tabelas aninhadas, o que torna o código muito ilegível.)

Enfim, o que eu preciso é saber se é possível estabelecer alguma navegação (como o jQuery ou o próprio CSS) dentro desse código HTML.

Resumo

Tenho um código HTML armazenado numa variável PHP. Como faço pra pegar o conteúdo de uma tag específica (ou um conjunto delas)?

Contextualização

Podemos supor, pra tornar as coisas mais práticas, a seguinte situação:

<?php

    $conteudoIframe = "<h1>Al<i>gu<u id=\"id_do_que_eu_quero\">ma</u></i> '-' <i>co<u>i</u>sa</i> escrita</h1>";

?>

E eu queria obter o conteúdo da u#id_do_que_eu_quero.

(No exemplo seria possível utilizar Regex, entretanto, como o código é demasiado extenso, isso se torna impraticável).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para manipular elementos você tem que usar JavaScript;

<?php
// trata a string, substitui aspas duplas por simples.
$conteudoIframe = str_replace("\"","\'", "<h1>Al<i>gu<u id='id_do_que_eu_quero'>ma</u></i> '-' <i>co<u>i</u>sa</i> escrita</h1>");

//escreve o HTML no documento para que o JS possa manipulá-lo.
echo "<div id='teste' style='height: 0; visibility: hidden;'>" . $conteudoIframe . "</div>";
?>

<script>
var conteudo = "<?php echo $conteudoIframe ?>"; 
</script>

<!-- DIV que vai mostrar o valor do ID que você quer -->
<div id="valor"></div>
<?php
echo "<script>  document.getElementById('valor').innerHTML = document.getElementById('id_do_que_eu_quero').innerHTML</script>";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Danyx
      Bom dia Senhores,
       
      Estamos desenvolvendo um aplicativo android que precisa de traçar rotas e navegação e temos alguns cálculos específicos para esse fim. Pois bem, ao fazer esses cálculos e passar para o gmaps o início e o fim da rota o mesmo traça a rota mais perto, não sendo a mesma que o nosso app passou. Descobrimos uma solução chamada mapbox que atende perfeitamente a nossa necessidade abre a navegação dentro do nosso app e tudo, mas não tem tradução para o Português. Enfim gostaria da ajuda de vcs caso tenha alguma sugestão para essa demanda ou um SDK que faça isso.
    • Por juninhogpe
      Bom dia.
       
      Pessoal sou novato com Json, mais consigo recuperar uma lista de itens com javascript de uma url externa, faço a exibição dos itens em lista com ul's e li's, até ai tudo bem.
      Nessa lista tenho um link como "saiba +" e ao clicar gostaria de carregar os detalhes desse item que também está no Json para essa nova aba/tela, como posso fazer?
       
      E ao exibir na nova janela gostaria de fazer uma navegação do tipo: Anterior e Próximo.
       
      Desde já agradeço.
    • Por capoot
      Prezados(as)

      Já pesquisei bastante na rede, mas não obtive êxito. Criei todo um site com banco de dados, para um arquivo geral. Porém faltam-me resolver 2 problemas.

      1- Criei um menu dropdown, e preciso que consiga-se navegar pelo menu, usando as setas do teclado. Usei esse script, mas não deu certo:

      <html> <script type="text/javascript"> var lis = document.getElementsByTagName('li'); for (var i = 0, li; li = lis[i]; i++){ li.onfocus = function(){ var ul = this.getElementsByTagName('ul')[0]; if (ul) ul.style.display = 'block'; } li.onblur = function(){ var ul = this.getElementsByTagName('ul')[0]; if (ul) ul.style.display = ''; } } </script> </html> 2- Sendo esse menu dropdown, não sei se teria como, gostaria que ao passar o mouse e um submenu ele ficasse selecionado sem que sumisse ao tirar o mouse de cima desse submenu.

      Muito obrigado a todos que poderem ajudar.

    • Por somba3000
      Olar. Eu tenho uma duvida que não consigo encontrar ela em específico em lugar algum. Estou montando um site e desenvolvendo as páginas dele separadamente, assim depois basta apenas utilizar o include na página que eu quero que seja carregada no site. O problema é que não tenho certeza se estou fazendo isto da maneira certa.
      Meu index está da seguinte forma:
      <html> <head> <?php include("header.php"); ?> </head> <body> <?php include("topbar.php"); include("navbar.php"); include("botoes.php"); include("anuncio.php"); include("redesSociais.php"); include("rodape.php"); include("copyright.php"); ?> <?php include("scripts.php"); ?> </body> </html> Sendo assim, por exemplo, no menu se eu clicar em Cadastro, eu deveria substituir apenas as páginas botoes.php e anuncio.php para colocar apenas a página cadastro.php, pois o topbar.php, navbar.php e rodape.php são fixos e não mudam na página. Com isso eu gostaria que o URL ficasse localhost/index.php na home e quando carregasse o cadastro.php fosse para localhost/cadastro.php
      Com JQuery consigo utilizar o load do JQuery para carregar as páginas em divs específicas, mas o URL ainda continua localhost/index.php mesmo trocando a página.
      Qual a forma correta de eu utilizar isto? Sei que posso dentro do arquivo cadastro.php dar include tudo de novo em topbar.php, navbar.php, inserir o código de cadastro.php e depois finalizar com rodape.php, mas isso é correto de se fazer? Utilizando PHP e JQuery (futuramente será inserido banco de dados neste site) não há uma forma mais ergonômica de se fazer o mesmo? Pois utilizando $_GET nas URL para navegações é horrível e inseguro.
      Obrigado pela atenção, estou sem orientação a respeito :/
    • Por Elton Pongilo
      Estou desenvolvendo uma "tabela" que ao clicar em uma linha ela expande para exibir mais informações, mas ao navegar usando as teclas de direção ele expande a linha anterior ou a próxima de acordo com qual tecla for pressionada.
       
      Mas quero implementar as seguintes coisas que não estou conseguindo desenvolver:
      Ao teclar os direcionais ele expande a primeira ou a ultima linha da tabela sem que algo já esteja selecionado, pois do jeito que esta ele só funciona se algo já estiver selecionado.
      E também quero fazer com que as linhas que vai ser expandida sempre esteja aparente, de modo que primeiro funcione o scroll, para ele ficar visível na tela, e depois expanda a linha, pois do jeito q está o scroll fica fixo e a linha expandida fica oculta.
       
      O projeto está no jsfiddle, ao abrir entenderam melhor o q estou dizendo.
      https://jsfiddle.net/pongilo/kt4m85t9/
       
      Agradeço desde já.
×

Informação importante

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