summaryrefslogtreecommitdiffstats
path: root/vendor/fguillot/picofeed/docs/favicon.markdown
blob: 1ac3ee1fcc0929843beb272cd39f23a772cadbaa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
Favicon fetcher
===============

Find and download the favicon
-----------------------------

```php
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:

```php
$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.

```php
$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
------------------------------

```php
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:

```php
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');
```