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 / Utils / URL.php
independent-analytics / IAWP / Utils Last commit date
BladeOne.php 2 years ago CSV.php 9 months ago Calculations.php 2 years ago Currency.php 8 months ago Device.php 1 year ago Device_Cache.php 2 years ago Dir.php 5 months ago Format.php 5 months ago Link_Validator.php 6 months ago Number_Formatter.php 5 months ago Obj.php 6 months 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 5 months ago URL.php 6 months ago WP_Async_Request.php 1 year ago
URL.php
69 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_url() : ?string
34 {
35 if (!$this->is_valid_url()) {
36 return null;
37 }
38 return $this->url;
39 }
40 public function get_domain() : ?string
41 {
42 if (!$this->is_valid_url()) {
43 return null;
44 }
45 return Uri::createFromString($this->url)->getHost();
46 }
47 public function get_extension() : ?string
48 {
49 if (!$this->is_valid_url()) {
50 return null;
51 }
52 $path = Uri::createFromString($this->url)->getPath();
53 $file = Str::afterLast($path, '/');
54 $extension = Str::afterLast($file, '.');
55 return $extension !== "" ? $extension : null;
56 }
57 public function get_path() : ?string
58 {
59 if (!$this->is_valid_url()) {
60 return null;
61 }
62 return Uri::createFromString($this->url)->getPath();
63 }
64 public static function new(string $url) : self
65 {
66 return new self($url);
67 }
68 }
69