Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Функция нужна для удаления GET-параметра из $_SERVER['REQUEST_URI]
- * @param string $requestUri $_SERVER['REQUEST_URI];
- * @param string $param Параметр, который нужно удалить
- * @return string Новая строка, без параметра, который нужно было удалить
- */
- function delParam(string $requestUri, string $param) : string {
- $pieces = explode('?', $requestUri);
- // Если есть GET-параметры
- if (count($pieces) == 2) {
- // Получаем все GET-параметры
- $params = array();
- parse_str($string[1], $params);
- // Если есть нужный параметр - удаляем его
- if (!empty($params[$param])) {
- unset($params[$param]);
- }
- // Создаем новую строку из GET-параметров
- $pieces[1] = http_build_query($params);
- // Соединяем две части REQUEST_URI
- if ($pieces[1] != "") {
- $requestUri = implode('?', $pieces);
- }else {
- $requestUri = $pieces[0];
- }
- }
- return $requestUri;
- }
- /**
- * Функция нужна для добавления GET-параметра в url
- * @param string $requestUri $_SERVER['REQUEST_URI];
- * @param string $param Параметр, который нужно добавить
- * @param string $value Значение параметра
- * @return string Новая строка, с параметром, который нужно было добавить
- */
- function addUrlParam(string $requestUri, string $param, string $value) : string {
- $pieces = explode('?', $requestUri);
- // Если есть GET-параметры
- if (count($pieces) == 2) {
- // Получаем все параметры
- $params = explode('&', $pieces[1]);
- // Во всех параметрах ищем параметр, который нужно задать/переопределить
- foreach ($params as $index => $getParam) {
- $getParam = explode('=', $getParam);
- if (strtolower($getParam[0]) == strtolower($param)) {
- unset($params[$index]);
- }
- }
- $params[] = "$param=$value";
- $pieces[1] = implode('&', $params);
- }else {
- $pieces[1] .= "$param=$value";
- }
- $requestUri = implode('?', $pieces);
- return $requestUri;
- }
Advertisement