43 $parts = parse_url(
$url);
46 if (isset($parts[
'query'])) {
48 parse_str($parts[
'query'], $params);
51 foreach ($paramsToFilter
as $paramName) {
52 unset($params[$paramName]);
55 if (count($params) > 0) {
56 $query =
'?' . http_build_query($params,
null,
'&');
60 $scheme = isset($parts[
'scheme']) ? $parts[
'scheme'] .
'://' :
'';
61 $host = isset($parts[
'host']) ? $parts[
'host'] :
'';
62 $port = isset($parts[
'port']) ?
':' . $parts[
'port'] :
'';
63 $path = isset($parts[
'path']) ? $parts[
'path'] :
'';
64 $fragment = isset($parts[
'fragment']) ?
'#' . $parts[
'fragment'] :
'';
66 return $scheme . $host . $port .
$path . $query . $fragment;
79 if (
empty($newParams)) {
83 if (strpos(
$url,
'?') ===
false) {
84 return $url .
'?' . http_build_query($newParams,
null,
'&');
87 list(
$path, $query) = explode(
'?',
$url, 2);
89 parse_str($query, $existingParams);
92 $newParams = array_merge($newParams, $existingParams);
97 return $path .
'?' . http_build_query($newParams,
null,
'&');
109 $query = parse_url(
$url, PHP_URL_QUERY);
114 parse_str($query, $params);
131 $newParams = static::getParamsAsArray($urlToStealFrom);
137 return static::appendParamsToUrl($urlToAddTo, $newParams);
153 return strpos($string,
'/') === 0 ? $string :
'/' . $string;
165 return '/' . preg_replace(
'/^https:\/\/.+\.facebook\.com(\/v.+?)?\//',
'', $urlToTrim);