April 18, 2011

How to get a website's favicon with PHP?

Question by xy_

I want to get requested website’s favicon with PHP. I have been recommended using Google’s favicon service but it is not functional. I want to do something on my own but don’t know regex usage.

I found a class on Google that works on most cases but it has unacceptable error rate. You can have a look here: http://www.controlstyle.com/articles/programming/text/php-favicon/

Can somebody please help me about getting favicon using regex, please?

Answer by vooD

Quick and dirty:

<?php 
$url = 'http://example.com/';
$doc = new DOMDocument();
$doc->strictErrorChecking = FALSE;
$doc->loadHTML(file_get_contents($url));
$xml = simplexml_import_dom($doc);
$arr = $xml->xpath('//link[@rel="shortcut icon"]');
echo $arr[0]['href'];

Answer by Starx

Use the S2 service provided by google. It is as simple as this

http://www.google.com/s2/favicons?domain=www.yourdomain.com

Scraping this would be much easier, that trying to do it yourself.

...

Please fill the form - I will response as fast as I can!