PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.14.2
Independent Analytics – WordPress Analytics Plugin v2.14.2
2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / IAWP / Favicon / Favicon.php
independent-analytics / IAWP / Favicon Last commit date
Converter 5 months ago Favicon.php 5 months ago FaviconDownloader.php 5 months ago
Favicon.php
49 lines
1 <?php
2
3 namespace IAWP\Favicon;
4
5 use IAWP\Known_Referrers;
6 /** @internal */
7 class Favicon
8 {
9 public string $domain;
10 public function __construct(string $domain)
11 {
12 $group = Known_Referrers::get_group_for($domain);
13 if (\is_array($group)) {
14 $this->domain = $group['domain'];
15 } else {
16 $this->domain = $domain;
17 }
18 }
19 public function file_name() : string
20 {
21 $sanitized = \preg_replace('/[^a-z0-9]/', '-', \strtolower($this->domain));
22 if (\strlen($sanitized) > 100) {
23 $sanitized = \substr($sanitized, 0, 100);
24 }
25 $hash = \substr(\md5($this->domain), 0, 6);
26 return $sanitized . '-' . $hash . '.png';
27 }
28 public function exists() : bool
29 {
30 return \is_string($this->url());
31 }
32 public function url() : ?string
33 {
34 $path_in_plugin = 'img/favicons/' . $this->file_name();
35 if (\file_exists(\IAWPSCOPED\iawp_path_to($path_in_plugin))) {
36 return \IAWPSCOPED\iawp_url_to($path_in_plugin);
37 }
38 $path_in_uploads = 'iawp-favicons/' . $this->file_name();
39 if (\file_exists(\IAWPSCOPED\iawp_upload_path_to($path_in_uploads))) {
40 return \IAWPSCOPED\iawp_upload_url_to($path_in_uploads);
41 }
42 return null;
43 }
44 public static function for(string $domain) : self
45 {
46 return new self($domain);
47 }
48 }
49