Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting meta title and description

I am having trouble getting the meta description/title from this specific site.

Here is some code:

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

It works with other sites, but not with the site in question. What could be the problem?

like image 890
johnny Avatar asked May 24 '11 16:05

johnny


People also ask

What is meta title & meta description?

What are title tags and meta descriptions? Title tags and meta descriptions are bits of HTML code in the header of a web page. They help search engines understand the content on a page. A page's title tag and meta description are usually shown whenever that page appears in search engine results.

How do you find the meta title?

If you want to find out whether a given page is using meta tags, just right-click anywhere on the page and select “View Page Source.” A new tab will open in Chrome (in Firefox, it'll be a pop-up window). The part at the top, or “head” of the page, is where the meta tags would be.


1 Answers

This should work fine:

$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');
  }
}

More info: http://www.php.net/manual/en/book.dom.php

Edit: this shorter version can also work to find the description:

$xpath = new DOMXPath($doc);
$description = $xpath->query('//meta[@name="description"]/@content');
like image 195
seriousdev Avatar answered Oct 20 '22 05:10

seriousdev