Получение мета-заголовка и описания - PullRequest
5 голосов
/ 24 мая 2011

У меня проблемы с получением мета-описания / заголовка с этого конкретного сайта .

Вот код:

$file = file('http://www.thegooddrugsguide.com/lsd/index.htm');
$file = implode("",$file);
if (preg_match('/<title>(.*?)<\/title>/is',$file,$t)) $title = $t[1];

Работает с другими сайтами, но не с соответствующим сайтом. В чем может быть проблема?

Ответы [ 2 ]

18 голосов
/ 24 мая 2011

Это должно работать нормально:

$doc = new DOMDocument;
$doc->loadHTMLFile('http://example.com');

$title = $doc->getElementsByTagName('title');
$title = $title[0];

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

foreach ($metas as $meta) {
  if (strtolower($meta->getAttribute('name')) == 'description') {
    $description = $meta->getAttribute('value');
  }
}

Подробнее: http://www.php.net/manual/en/book.dom.php

Редактировать : эта более короткая версия также может найти описание:

$xpath = new DOMXPath($doc);
$description = $xpath->query('//meta[@name="description"]/@content');
4 голосов
/ 20 сентября 2013
$url = "http://www.thegooddrugsguide.com/lsd/index.htm";    
$tags = get_meta_tags($url);
$description = $tags["description"];
...