КодИгнитер:Класс/библиотека, помогающая получить метатеги с веб-страницы?

StackOverflow https://stackoverflow.com/questions/2273555

Вопрос

Я использую кодегнитер.Я думаю, не имеет значения, какой фреймворк PHP я использую.

Но прежде чем я напишу свой собственный класс, есть ли уже написанный другой, который позволяет пользователю получать заголовок страницы и метатеги (ключевые слова, описания) любого сайта... если они у них есть.

Любой класс PHP, который это делает, был бы великолепен.

Спасибо всем

Это было полезно?

Решение

Вам стоит взглянуть на этот класс: PHP Простой HTML DOM это работает следующим образом:

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

Другие советы

Вы можете получить все метатеги с удаленной страницы с помощью get_meta_tags — http://ca3.php.net/get_meta_tags

на этой странице есть класс для получения страницы и описания, они также используют get_meta_tags - http://www.emirplicanic.com/php/get-remote-page-title-with-php.php

Вы должны иметь возможность комбинировать кусочки обоих, чтобы получить все, что вам нужно.

Используйте библиотеку PHP Curl.Он может извлекать другие страницы из Интернета и получать их в виде строк, а затем вы можете анализировать строку с помощью регулярных выражений, чтобы найти заголовок страницы и метатеги.

Посмотрите это, пожалуйста. Это универсальный класс для получения метатегов страницы и многого другого.Посмотрите, сможете ли вы добавить это в библиотеку codeigniter.Спасибо

С 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");
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top