PluginProbe ʕ •ᴥ•ʔ
Brevo – Email, SMS, Web Push, Chat, and more. / 3.2.0
Brevo – Email, SMS, Web Push, Chat, and more. v3.2.0
2.9.13 2.9.14 2.9.15 2.9.16 2.9.17 2.9.18 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8 2.9.9 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.9 3.1.0 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.2 3.1.20 3.1.21 3.1.22 3.1.23 3.1.24 3.1.25 3.1.26 3.1.27 3.1.28 3.1.29 3.1.3 3.1.30 3.1.31 3.1.32 3.1.33 3.1.34 3.1.35 3.1.36 3.1.37 3.1.38 3.1.39 3.1.4 3.1.40 3.1.41 3.1.42 3.1.43 3.1.44 3.1.45 3.1.46 3.1.47 3.1.48 3.1.49 3.1.5 3.1.50 3.1.51 3.1.52 3.1.53 3.1.54 3.1.55 3.1.56 3.1.57 3.1.58 3.1.59 3.1.6 3.1.60 3.1.61 3.1.62 3.1.63 3.1.64 3.1.65 3.1.66 3.1.67 3.1.68 3.1.69 3.1.7 3.1.70 3.1.71 3.1.72 3.1.73 3.1.74 3.1.75 3.1.76 3.1.77 3.1.78 3.1.79 3.1.8 3.1.80 3.1.81 3.1.82 3.1.83 3.1.84 3.1.85 3.1.86 3.1.87 3.1.88 3.1.89 3.1.9 3.1.90 3.1.91 3.1.92 3.1.93 3.1.94 3.1.95 3.1.96 3.1.97 3.1.98 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 trunk 1.0 1.5 2.0.8 2.9.10 2.9.11 2.9.12
mailin / wonderpush-php-lib / lib / Util / UrlUtil.php
mailin / wonderpush-php-lib / lib / Util Last commit date
ArrayUtil.php 1 year ago DefaultLogger.php 1 year ago JsonSerializable.php 1 year ago Logger.php 1 year ago StringUtil.php 1 year ago TimeUnit.php 1 year ago TimeUtil.php 1 year ago TimeValue.php 1 year ago UrlUtil.php 1 year ago
UrlUtil.php
74 lines
1 <?php
2
3 namespace WonderPush\Util;
4
5 if (count(get_included_files()) === 1) { http_response_code(403); exit(); } // Prevent direct access
6
7 /**
8 * Utility class for URL manipulation.
9 */
10 class UrlUtil {
11
12 /**
13 * Parses a query string into an associative array.
14 *
15 * PHP syntax and duplicated arguments are not supported (`foo[bar]=`, `foo[]=`, etc.).
16 *
17 * @param string|null|string[] $queryString
18 * @return string[] String parameter values by parameter name.
19 * @throws \InvalidArgumentException
20 */
21 public static function parseQueryString($queryString) {
22 if (is_array($queryString)) {
23 return $queryString;
24 }
25 if ($queryString === '' || $queryString === null) {
26 return array();
27 }
28 if (!is_string($queryString)) {
29 throw new \InvalidArgumentException('Query string must be a string, null, or already parsed array');
30 }
31 return call_user_func_array('array_merge', array_map(function($queryPart) {
32 $keyValue = explode('=', $queryPart, 2);
33 return array(urldecode($keyValue[0]) => urldecode($keyValue[1]));
34 }, explode('&', $queryString)));
35 }
36
37 /**
38 * Returns a new URL with the desired query string in lieu of the original one, if any.
39 * @param string $url The original URL to replace the query string from.
40 * @param string|array $newQueryString The new query string to use.
41 * @return string The modified URL with a new query string.
42 */
43 public static function replaceQueryStringInUrl($url, $newQueryString) {
44 $hashPos = strpos($url, '#');
45 if ($hashPos === false) {
46 $fragment = null;
47 } else {
48 $fragment = substr($url, $hashPos + 1);
49 $url = substr($url, 0, $hashPos);
50 }
51 $questionMarkPos = strpos($url, '?');
52 if ($questionMarkPos !== false) {
53 $url = substr($url, 0, $questionMarkPos);
54 }
55 $qs = $newQueryString;
56 if (!is_string($qs) && $qs !== null) {
57 if (defined('PHP_QUERY_RFC3986')) {
58 // @codingStandardsIgnoreLine
59 $qs = http_build_query($qs, '', '&', PHP_QUERY_RFC3986);
60 } else {
61 $qs = http_build_query($qs);
62 }
63 }
64 if (!empty($qs)) {
65 $url .= '?' . $qs;
66 }
67 if ($fragment !== null) {
68 $url .= '#' . $fragment;
69 }
70 return $url;
71 }
72
73 }
74