КодИгнитер:Класс/библиотека, помогающая получить метатеги с веб-страницы?
-
20-09-2019 - |
Вопрос
Я использую кодегнитер.Я думаю, не имеет значения, какой фреймворк 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");
}