Файл: concrete5.7.5.6/concrete/src/Utility/Service/Url.php
Строк: 32
<?php
namespace ConcreteCoreUtilityService;
use Loader;
class Url {
public function setVariable($variable, $value = false, $url = false) {
// either it's key/value as variables, or it's an associative array of key/values
if ($url == false) {
$url = Loader::helper('security')->sanitizeString($_SERVER['REQUEST_URI']);
} elseif(!strstr($url,'?')) {
$url = $url . '?' . Loader::helper('security')->sanitizeString($_SERVER['QUERY_STRING']);
}
$vars = array();
if (!is_array($variable)) {
$vars[$variable] = $value;
} else {
$vars = $variable;
}
foreach($vars as $variable => $value) {
$url = preg_replace('/(.*)(?|&)' . $variable . '=[^&]+?(&)(.*)/i', '$1$2$4', $url . '&');
$url = substr($url, 0, -1);
if (strpos($url, '?') === false) {
$url = $url . '?' . $variable . '=' . $value;
} else {
$url = $url . '&' . $variable . '=' . $value;
}
}
// THIS DOES NOT WORK. SOMEONE WILL NEED TO FIX THIS PROPERLY IF THE W3C FOLKS WANT IT TO WORK
//$url = str_replace('&', '&', $url);
return $url;
}
public function unsetVariable($variable, $url = false) {
// either it's key/value as variables, or it's an associative array of key/values
if ($url == false) {
$url = $_SERVER['REQUEST_URI'];
} elseif(!strstr($url,'?')) {
$url = $url . '?' . $_SERVER['QUERY_STRING'];
}
$vars = array();
if (!is_array($variable)) {
$vars[] = $variable;
} else {
$vars = $variable;
}
foreach($vars as $variable) {
$url = preg_replace('/(.*)(?|&)' . $variable . '=[^&]+?(&)(.*)/i', '$1$2$4', $url . '&');
$url = substr($url, 0, -1);
}
// THIS DOES NOT WORK. SOMEONE WILL NEED TO FIX THIS PROPERLY IF THE W3C FOLKS WANT IT TO WORK
//$url = str_replace('&', '&', $url);
return $url;
}
public function buildQuery($url, $params) {
return $url . '?' . http_build_query($params, '', '&');
}
/**
* Shortens a given url with the tiny url api
* @param string $strURL
* @return string $url
*/
public function shortenURL($strURL) {
$file = Loader::helper('file');
$url = $file->getContents("http://tinyurl.com/api-create.php?url=".$strURL);
return $url;
}
}