2.0 KiB
2.0 KiB
Favicon fetcher
Find and download the favicon
use PicoFeed\Reader\Favicon;
$favicon = new Favicon;
// The icon link is https://bits.wikimedia.org/favicon/wikipedia.ico
$icon_link = $favicon->find('https://en.wikipedia.org/');
$icon_content = $favicon->getContent();
PicoFeed will try first to find the favicon from the meta tags and fallback to the favicon.ico
located in the website's root if nothing is found.
Favicon::find()
returns the favicon absolute url or an empty string if nothing is found.Favicon::getContent()
returns the favicon file content (binary content)
When the HTML page is parsed, relative links and protocol relative links are converted to absolute url.
Get Favicon file type
It's possible to fetch the image type, this information come from the Content-Type HTTP header:
$favicon = new Favicon;
$favicon->find('http://example.net/');
echo $favicon->getType();
// Will output the content type, by example "image/png"
Get the Favicon as Data URI
You can also get the whole image as Data URI. It's useful if you want to store the icon in your database and avoid too many HTTP requests.
$favicon = new Favicon;
$favicon->find('http://example.net/');
echo $favicon->getDataUri();
// Output something like that: data:image/png;base64,iVBORw0KGgoAAAANSUh.....
See: http://en.wikipedia.org/wiki/Data_URI_scheme
Check if a favicon link exists
use PicoFeed\Reader\Favicon;
$favicon = new Favicon;
// Return true if the file exists
var_dump($favicon->exists('http://php.net/favicon.ico'));
Use personalized HTTP settings
Like other classes, the Favicon class support the Config object as constructor argument:
use PicoFeed\Config\Config;
use PicoFeed\Reader\Favicon;
$config = new Config;
$config->setClientUserAgent('My RSS Reader');
$favicon = new Favicon($config);
$favicon->find('https://github.com');