получение информации метатегов с помощью curl и get_meta_tags () - PullRequest
0 голосов
/ 01 марта 2011

Есть ли способ использовать curl, чтобы вы могли сделать что-то, что эквивалентно функции get_meta_tags () в php?в частности, чтобы получить метатеги внешнего сайта с помощью curl в php с наименьшим количеством возможных накладных расходов

Ответы [ 2 ]

8 голосов
/ 29 марта 2012
function file_get_contents_curl($url)
{
$ch = curl_init();

curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

$data = curl_exec($ch);
curl_close($ch);

return $data;
}

$html = file_get_contents_curl("http://www.example.com");

//parsing begins here:
$doc = new DOMDocument();
@$doc->loadHTML($html);
$nodes = $doc->getElementsByTagName('title');

//get and display what you need:
$title = $nodes->item(0)->nodeValue;

$metas = $doc->getElementsByTagName('meta');

for ($i = 0; $i < $metas->length; $i++)
{
$meta = $metas->item($i);
if($meta->getAttribute('name') == 'description')
    $description = $meta->getAttribute('content');
if($meta->getAttribute('name') == 'keywords')
    $keywords = $meta->getAttribute('content');
if($meta->getAttribute('language') == 'language');
    $language = $meta->getAttribute('language');
}

echo "Title: $title". '<br/><br/>';
echo "Description: $description". '<br/><br/>';
echo "Keywords: $keywords";
2 голосов
/ 01 марта 2011

есть ли способ использовать curl, чтобы вы могли сделать что-то, что эквивалентно функции get_meta_tags () в php

Нет, я так не думаю.

Лучшим способом было бы получить данные и проанализировать их с помощью HTML-парсера .В качестве альтернативы, есть несколько основанных на регулярных выражениях подходов в примечаниях, внесенных пользователем в руководстве.

...