Ir para conteúdo

POWERED BY:

Arquivado

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

Giihh

Indice de tags html

Recommended Posts

Olá,

 

Alguma ideia de como faço para capturar as tags html: h1, h2, h3, h4, etc da página e criar um índice automático com php na própria página ?

 

Agradeço ajuda

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, mas como eu pego o conteúdo inteiro da página e coloco numa variavel para o preg_match_all fazer o filtro com as expressões regulares?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigada mais uma vez Beraldo,

 

Mas como faço para "declarar" automaticamente a própria página carregada? e os outros atributos não compreendi exatamente o que devo colocar

$conteudo = file_get_contents('link da propria página carregada', outros atributos do file_get_contents);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez isso te ajude:

http://php.net/manual/pt_BR/class.domelement.php

 

Edit: Nossa, postaram enquanto eu estava escrevendo hahahah... pode desconsiderar.

 

rsrsrs tranquilo, acontece

 

Então estou fazendo assim para capturar a url:

$url_atual = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

dei um echo e tudo funcionando ok. (referencia: http://codigofonte.uol.com.br/codigos/retornar-a-url-completa-em-php)

 

 

Mas quando tento colocar o conteudo da página na variavel $conteudo, fica duas horas carregando e não faz nada:

 

$url_atual = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";


$conteudo = file_get_contents($url_atual);

Não esta o código completo, é só pra ter uma ideia de como estou tentando usar o file_get_contents

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas como faço para "declarar" automaticamente a própria página carregada?

Não entendi sua dúvida. O que quer dizer com "declarar"?

 

Veja um simples exemplo:

 

 

$url = 'http://rberaldo.com.br/curso-de-shell-script-modulo-1-scripts-shell-estruturas/';
$contents = file_get_contents($url);
 
preg_match_all("/<h[1-6].*?>(.+?)<\/h[1-6]>/i", $contents, $matches);
 
print_r($matches[1]);

 

Você verá que todos os cabeçalhos (h1, h2... h6) serão exibidos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi sua dúvida. O que quer dizer com "declarar"?

 

Veja um simples exemplo:

$url = 'http://rberaldo.com.br/curso-de-shell-script-modulo-1-scripts-shell-estruturas/';
$contents = file_get_contents($url);
 
preg_match_all("/<h[1-6].*?>(.+?)<\/h[1-6]>/i", $contents, $matches);
 
print_r($matches[1]);

Você verá que todos os cabeçalhos (h1, h2... h6) serão exibidos

 

Então Beraldo, acontece que da forma que vc coloca uma url fixa na variavel $url, no caso a pagina do seu curso, funciona certinho aqui tbm, com uma demora de carregamento de cerca de 15 segundos.

 

Mas no meu caso quando tento fazer com que a variavel $url receba o url da página carregada usando

$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

funciona também, mas o carregamento demora muito tipo uns 2minutos, se eu não estiver exagerando.

 

Alguma forma de resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funciona mesmo?

Isso tem cara que vai entrar em loop infinito e dar timeout

 

Isso por que a página vai chamar ela mesma. E a cada chamada, ela chama ele mesmo de novo. E assim vai...

 

Se você quer contar o tempo de carregamento de uma página, use microtime() no começo e no final, depois subtraia.

 

Veja:

http://stackoverflow.com/a/1202746/1233120

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigada pela ótima dica Beraldo.

 

Outra coisa, como faço para alem do conteudo pegar as tags?

 

Em expressões regulares o que faz o #?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra coisa, como faço para alem do conteudo pegar as tags?

As tags estarão no conteúdo.

Você só precisa criar regras para pegar só elas, usando ERs.

Ou usar um parser HTML

 

Em expressões regulares o que faz o #?

O sustenido não tem significado especial.

Ele pode servir como delimitador nas ERs do padrão PCRE.

 

Um ótimo livro completo e gratuito sobre ERs:

http://aurelio.net/regex/guia/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo,

 

estou fazendo assim:

 

Pego o conteudo da página no db e salvo numa variavel, logo apos, utilzo o preg_match_all para localizar os conteudo que quero.

 

Logo após utilizo o implode:

$content = implode("\n",$resultado[0]);

depois utilizo o str_replace para alterar algumas coisas

e o preg_replace para alterar outras coisas usando expressões regulares.

 

mas pra poder imprimir estou fazendo assim:

return $content;

acontece que quando usamos o return não carrega mais nada né? ai o restante do conteudo que deveria carregar não carrega.

 

Então basicamente consegui fazer o que queria, mas o restante da página não carrega.

 

Alguma sugestão?

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.