PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.12.2
Independent Analytics – WordPress Analytics Plugin v2.12.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 / Utils / URL.php
independent-analytics / IAWP / Utils Last commit date
BladeOne.php 2 years ago CSV.php 1 year ago Calculations.php 2 years ago Currency.php 1 year ago Device.php 1 year ago Device_Cache.php 2 years ago Dir.php 2 years ago Link_Validator.php 1 year ago Number_Formatter.php 2 years ago Request.php 11 months ago Salt.php 1 year ago Security.php 1 year ago Server.php 2 years ago Singleton.php 2 years ago String_Util.php 2 years ago Timezone.php 1 year ago URL.php 1 year ago WP_Async_Request.php 1 year ago WordPress_Site_Date_Format_Pattern.php 2 years ago
URL.php
62 lines
1 <?php
2
3 namespace IAWP\Utils;
4
5 use IAWPSCOPED\Illuminate\Support\Str;
6 use IAWPSCOPED\League\Uri\Contracts\UriException;
7 use IAWPSCOPED\League\Uri\Uri;
8 /** @internal */
9 class URL
10 {
11 private $url;
12 public function __construct(string $url)
13 {
14 $this->url = $url;
15 }
16 public function is_valid_url() : bool
17 {
18 $valid_url = \filter_var($this->url, \FILTER_VALIDATE_URL);
19 if (!$valid_url) {
20 return \false;
21 }
22 try {
23 // Recommend approach for uri validation: https://uri.thephpleague.com/uri/6.0/rfc3986/#uri-validation
24 $components = Uri::createFromString($this->url);
25 if (\is_null($components->getHost())) {
26 return \false;
27 }
28 return \true;
29 } catch (UriException $e) {
30 return \false;
31 }
32 }
33 public function get_domain() : ?string
34 {
35 if (!$this->is_valid_url()) {
36 return null;
37 }
38 return Uri::createFromString($this->url)->getHost();
39 }
40 public function get_extension() : ?string
41 {
42 if (!$this->is_valid_url()) {
43 return null;
44 }
45 $path = Uri::createFromString($this->url)->getPath();
46 $file = Str::afterLast($path, '/');
47 $extension = Str::afterLast($file, '.');
48 return $extension !== "" ? $extension : null;
49 }
50 public function get_path() : ?string
51 {
52 if (!$this->is_valid_url()) {
53 return null;
54 }
55 return Uri::createFromString($this->url)->getPath();
56 }
57 public static function new(string $url) : self
58 {
59 return new self($url);
60 }
61 }
62