return "$scheme$user$pass$host$port$path$query$fragment";
}
+/**
+ * Removes undesired query parameters and fragments
+ *
+ * @param string url Url to be cleaned
+ *
+ * @return string the string representation of this URL after cleanup
+ */
+function cleanup_url($url)
+{
+ $obj_url = new Url($url);
+ return $obj_url->cleanup();
+}
+
+/**
+ * Get URL scheme.
+ *
+ * @param string url Url for which the scheme is requested
+ *
+ * @return mixed the URL scheme or false if none is provided.
+ */
+function get_url_scheme($url)
+{
+ $obj_url = new Url($url);
+ return $obj_url->getScheme();
+}
+
/**
* URL representation and cleanup utilities
*
public function __construct($url)
{
$this->parts = parse_url($url);
+
+ if (!empty($url) && empty($this->parts['scheme'])) {
+ $this->parts['scheme'] = 'http';
+ }
}
/**
* Returns a string representation of this URL
*/
- public function __toString()
+ public function toString()
{
return unparse_url($this->parts);
}
{
$this->cleanupQuery();
$this->cleanupFragment();
- return $this->__toString();
+ return $this->toString();
+ }
+
+ /**
+ * Get URL scheme.
+ *
+ * @return string the URL scheme or false if none is provided.
+ */
+ public function getScheme() {
+ if (!isset($this->parts['scheme'])) {
+ return false;
+ }
+ return $this->parts['scheme'];
}
}