aboutsummaryrefslogtreecommitdiff
path: root/includes/vendor/jakeasmith
diff options
context:
space:
mode:
Diffstat (limited to 'includes/vendor/jakeasmith')
-rw-r--r--includes/vendor/jakeasmith/http_build_url/readme.md20
-rw-r--r--includes/vendor/jakeasmith/http_build_url/src/http_build_url.php174
2 files changed, 194 insertions, 0 deletions
diff --git a/includes/vendor/jakeasmith/http_build_url/readme.md b/includes/vendor/jakeasmith/http_build_url/readme.md
new file mode 100644
index 0000000..cdf10f4
--- /dev/null
+++ b/includes/vendor/jakeasmith/http_build_url/readme.md
@@ -0,0 +1,20 @@
+# http_build_url() for PHP
+
+[![Build Status](https://travis-ci.org/jakeasmith/http_build_url.png)](https://travis-ci.org/jakeasmith/http_build_url)
+[![Code Climate](https://codeclimate.com/github/jakeasmith/http_build_url/badges/gpa.svg)](https://codeclimate.com/github/jakeasmith/http_build_url)
+[![Latest Stable Version](https://poser.pugx.org/jakeasmith/http_build_url/v/stable.png)](https://packagist.org/packages/jakeasmith/http_build_url)
+[![Total Downloads](https://poser.pugx.org/jakeasmith/http_build_url/downloads.png)](https://packagist.org/packages/jakeasmith/http_build_url)
+
+This simple library provides functionality for [`http_build_url()`](http://us2.php.net/manual/en/function.http-build-url.php) to environments without pecl_http. It aims to mimic the functionality of the pecl function in every way and ships with a full suite of tests that have been run against both the original function and the one in this package.
+
+## Installation
+
+The easiest way to install this library is to use [Composer](https://getcomposer.org/) from the command line.
+
+```
+$ composer require jakeasmith/http_build_url ^1
+```
+
+## License
+
+This project is licensed under the MIT License - see the LICENSE file for details.
diff --git a/includes/vendor/jakeasmith/http_build_url/src/http_build_url.php b/includes/vendor/jakeasmith/http_build_url/src/http_build_url.php
new file mode 100644
index 0000000..0dfdbba
--- /dev/null
+++ b/includes/vendor/jakeasmith/http_build_url/src/http_build_url.php
@@ -0,0 +1,174 @@
+<?php
+
+/**
+ * URL constants as defined in the PHP Manual under "Constants usable with
+ * http_build_url()".
+ *
+ * @see http://us2.php.net/manual/en/http.constants.php#http.constants.url
+ */
+if (!defined('HTTP_URL_REPLACE')) {
+ define('HTTP_URL_REPLACE', 1);
+}
+if (!defined('HTTP_URL_JOIN_PATH')) {
+ define('HTTP_URL_JOIN_PATH', 2);
+}
+if (!defined('HTTP_URL_JOIN_QUERY')) {
+ define('HTTP_URL_JOIN_QUERY', 4);
+}
+if (!defined('HTTP_URL_STRIP_USER')) {
+ define('HTTP_URL_STRIP_USER', 8);
+}
+if (!defined('HTTP_URL_STRIP_PASS')) {
+ define('HTTP_URL_STRIP_PASS', 16);
+}
+if (!defined('HTTP_URL_STRIP_AUTH')) {
+ define('HTTP_URL_STRIP_AUTH', 32);
+}
+if (!defined('HTTP_URL_STRIP_PORT')) {
+ define('HTTP_URL_STRIP_PORT', 64);
+}
+if (!defined('HTTP_URL_STRIP_PATH')) {
+ define('HTTP_URL_STRIP_PATH', 128);
+}
+if (!defined('HTTP_URL_STRIP_QUERY')) {
+ define('HTTP_URL_STRIP_QUERY', 256);
+}
+if (!defined('HTTP_URL_STRIP_FRAGMENT')) {
+ define('HTTP_URL_STRIP_FRAGMENT', 512);
+}
+if (!defined('HTTP_URL_STRIP_ALL')) {
+ define('HTTP_URL_STRIP_ALL', 1024);
+}
+
+if (!function_exists('http_build_url')) {
+
+ /**
+ * Build a URL.
+ *
+ * The parts of the second URL will be merged into the first according to
+ * the flags argument.
+ *
+ * @param mixed $url (part(s) of) an URL in form of a string or
+ * associative array like parse_url() returns
+ * @param mixed $parts same as the first argument
+ * @param int $flags a bitmask of binary or'ed HTTP_URL constants;
+ * HTTP_URL_REPLACE is the default
+ * @param array $new_url if set, it will be filled with the parts of the
+ * composed url like parse_url() would return
+ * @return string
+ */
+ function http_build_url($url, $parts = array(), $flags = HTTP_URL_REPLACE, &$new_url = array())
+ {
+ is_array($url) || $url = parse_url($url);
+ is_array($parts) || $parts = parse_url($parts);
+
+ isset($url['query']) && is_string($url['query']) || $url['query'] = null;
+ isset($parts['query']) && is_string($parts['query']) || $parts['query'] = null;
+
+ $keys = array('user', 'pass', 'port', 'path', 'query', 'fragment');
+
+ // HTTP_URL_STRIP_ALL and HTTP_URL_STRIP_AUTH cover several other flags.
+ if ($flags & HTTP_URL_STRIP_ALL) {
+ $flags |= HTTP_URL_STRIP_USER | HTTP_URL_STRIP_PASS
+ | HTTP_URL_STRIP_PORT | HTTP_URL_STRIP_PATH
+ | HTTP_URL_STRIP_QUERY | HTTP_URL_STRIP_FRAGMENT;
+ } elseif ($flags & HTTP_URL_STRIP_AUTH) {
+ $flags |= HTTP_URL_STRIP_USER | HTTP_URL_STRIP_PASS;
+ }
+
+ // Schema and host are alwasy replaced
+ foreach (array('scheme', 'host') as $part) {
+ if (isset($parts[$part])) {
+ $url[$part] = $parts[$part];
+ }
+ }
+
+ if ($flags & HTTP_URL_REPLACE) {
+ foreach ($keys as $key) {
+ if (isset($parts[$key])) {
+ $url[$key] = $parts[$key];
+ }
+ }
+ } else {
+ if (isset($parts['path']) && ($flags & HTTP_URL_JOIN_PATH)) {
+ if (isset($url['path']) && substr($parts['path'], 0, 1) !== '/') {
+ // Workaround for trailing slashes
+ $url['path'] .= 'a';
+ $url['path'] = rtrim(
+ str_replace(basename($url['path']), '', $url['path']),
+ '/'
+ ) . '/' . ltrim($parts['path'], '/');
+ } else {
+ $url['path'] = $parts['path'];
+ }
+ }
+
+ if (isset($parts['query']) && ($flags & HTTP_URL_JOIN_QUERY)) {
+ if (isset($url['query'])) {
+ parse_str($url['query'], $url_query);
+ parse_str($parts['query'], $parts_query);
+
+ $url['query'] = http_build_query(
+ array_replace_recursive(
+ $url_query,
+ $parts_query
+ )
+ );
+ } else {
+ $url['query'] = $parts['query'];
+ }
+ }
+ }
+
+ if (isset($url['path']) && $url['path'] !== '' && substr($url['path'], 0, 1) !== '/') {
+ $url['path'] = '/' . $url['path'];
+ }
+
+ foreach ($keys as $key) {
+ $strip = 'HTTP_URL_STRIP_' . strtoupper($key);
+ if ($flags & constant($strip)) {
+ unset($url[$key]);
+ }
+ }
+
+ $parsed_string = '';
+
+ if (!empty($url['scheme'])) {
+ $parsed_string .= $url['scheme'] . '://';
+ }
+
+ if (!empty($url['user'])) {
+ $parsed_string .= $url['user'];
+
+ if (isset($url['pass'])) {
+ $parsed_string .= ':' . $url['pass'];
+ }
+
+ $parsed_string .= '@';
+ }
+
+ if (!empty($url['host'])) {
+ $parsed_string .= $url['host'];
+ }
+
+ if (!empty($url['port'])) {
+ $parsed_string .= ':' . $url['port'];
+ }
+
+ if (!empty($url['path'])) {
+ $parsed_string .= $url['path'];
+ }
+
+ if (!empty($url['query'])) {
+ $parsed_string .= '?' . $url['query'];
+ }
+
+ if (!empty($url['fragment'])) {
+ $parsed_string .= '#' . $url['fragment'];
+ }
+
+ $new_url = $url;
+
+ return $parsed_string;
+ }
+}