Pergunta

Estou usando o CodeIgniter. Eu acho que não importa qual estrutura PHP estou usando.

Mas antes de escrever minha própria aula, há outra que já foi escrita que permite que um usuário obtenha o título da página e as meta tags (palavras -chave, descrições) de qualquer SIT ... se elas tiverem algum.

Qualquer tipo de classe PHP que faça isso seria ótimo.

Obrigado a todos

Foi útil?

Solução

Você deve dar uma olhada nesta aula: Php simples html dom Funciona desta maneira:

include('simple_html_dom.php');
$html = file_get_html('http://www.codeigniter.com/');

echo $html->find('title', 0)->innertext; // get <title>

echo "<pre>";
foreach($html->find('meta') as $element)
       echo $element->name . " : " . $element->content  . '<br>'; //prints every META tag

echo "</pre>";

Outras dicas

Você pode obter todas as tags de meta da página remota com get_meta_tags - http://ca3.php.net/get_meta_tags

Esta página tem uma classe para obter a página e a descrição, eles também estão usando get_meta_tags - http://www.emirplicanic.com/php/get-remote-page-title-with-php.php

Você deve ser capaz de combinar bits de ambos para obter tudo o que precisa.

Use a biblioteca Curl do PHP. Ele pode puxar outras páginas da web e buscá -las como strings e, em seguida, você pode analisar a string com expressões regulares para encontrar o título da página e as metatags.

Veja isso, por favor. Esta é a classe genérica para obter meta tags de página e fazer muito mais. Veja se você pode adicionar isso na biblioteca CodeIgniter. Obrigado

Com dom/xpath

libxml_use_internal_errors(true);
$c = file_get_contents("http://url/here");
$d = new DomDocument();
$d->loadHTML($c);
$xp = new domxpath($d);
foreach ($xp->query("//meta[@name='keywords']") as $el) {
    echo $el->getAttribute("content");
}
foreach ($xp->query("//meta[@name='description']") as $el) {
    echo $el->getAttribute("content");
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top