<MyRusakov.ru />

Программирование на C++ в Unreal Engine 5

Программирование на C++ в Unreal Engine 5

Данный курс научит Вас созданию игр на C++ в Unreal Engine 5. Курс состоит из 12 разделов, в которых Вас ждёт теория и практика. Причём, в качестве практики будет создан весьма крупный проект объёмом свыше 5000 строк качественного кода, который уже на практике познакомит Вас с принципами создания игр на C++ в Unreal Engine 5.

Параллельно с курсом Вы также будете получать домашние задания, результатом которых станет, в том числе, полноценная серьёзная работа для портфолио.

Помимо самого курса Вас ждёт ещё и очень ценный Бонус: «Тестирование Unreal-проектов на Python», в рамках которого Вы научитесь писать очень полезные тесты для тестирования самых разных аспектов разработки игр.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Удаление GET-параметра из URL

Удаление GET-параметра из URL

В сегодняшней статье я решил разобрать весьма полезную функцию, удаляющую любой GET-параметр из строки. Где это может быть нужно? Допустим, Вы делаете навигацию по страницам. И Вам необходимо сделать универсальный скрипт её создания, добавляя к текущему URL параметр page. Однако, текущий URL может быть уже с параметром page. В итоге, получится, например, такой URL: "/?page=5&page=7". Тогда как правильный должен быть: "/?page=7". Таким образом, необходимо сначала удалить параметр page, а уже потом скрипт создания навигации по страницам сделает своё дело.

Привожу сразу код функции, которая это делает:

<?php
  function deleteGET($url, $name, $amp = true) {
    $url = str_replace("&amp;", "&", $url); // Заменяем сущности на амперсанд, если требуется
    list($url_part, $qs_part) = array_pad(explode("?", $url), 2, ""); // Разбиваем URL на 2 части: до знака ? и после
    parse_str($qs_part, $qs_vars); // Разбиваем строку с запросом на массив с параметрами и их значениями
    unset($qs_vars[$name]); // Удаляем необходимый параметр
    if (count($qs_vars) > 0) { // Если есть параметры
      $url = $url_part."?".http_build_query($qs_vars); // Собираем URL обратно
      if ($amp) $url = str_replace("&", "&amp;", $url); // Заменяем амперсанды обратно на сущности, если требуется
    }
    else $url = $url_part; // Если параметров не осталось, то просто берём всё, что идёт до знака ?
    return $url; // Возвращаем итоговый URL
  }
  echo deleteGET("http://mysite.ru/?view=category&amp;page=5&amp;id=5", "page");
?>

Не очень сложный скрипт, однако, он выполняет весьма сложную задачу - удаление GET-параметра из URL. Ведь тут имеется огромное количество нюансов. Просто удалить строку - легко, но ведь нужно, чтобы исчез "?", если не осталось больше параметров. Нужно, чтобы исчез "&" перед удалённым параметром, но при условии, что он был не первый в строке запроса. Нужно, чтобы удалился & после параметра, но при условии, что он был не последний. Но при этом нельзя удалить сразу и спереди, и сзади амперсанд, иначе пострадают параметры до и после удаляемого. Видите, сколько нюансов, в казалось бы простой задаче? Данная же функция всё это учитывает.

Вот так можно легко удалить GET-параметр из URL, вызвав функцию из этой статьи.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (5):

malina95 malina95 07.11.2013 00:35:35

Зачем такие сложности с разделением ссылки на 2 части? Есть же pparse_url

Ответить

rysich rysich 24.03.2014 22:17:51

А ещё есть $_SERVER['QUERY_STRING']... Ну, это если сокращаемый URL и URL текущей страницы совпадают...

Ответить

(Алекс) (Алекс) 04.10.2015 15:58:32

А еще есть strTok(), которая "отсекает" все вместе переданным токеном.

Ответить

Great Great 15.11.2013 18:07:36

Отличная статья

Ответить

indigo indigo 06.07.2021 21:36:01

Чуток переделанная функция которая принимает удаляет нужные ключи function deleteGET($url, $names = []) { $url_part = parse_url($url); //разбиваем адресную строку на массив parse_str($url_part['query'], $get_part); //получаем с адресной строки get параметры (вторая переменаая уже массив "$get_part") //проходимся по массиву находим и удаляем нужные ключи foreach ($names as $v){ unset($get_part[$v]); } //если есть хотя бы 1 get параметр собираем адресную строку и отдем ее if (count($get_part) > 0){ $url = $url_part['path'] . '?' .http_build_query($get_part); } //если get параметров нет просто возарвешь адресную строку без get парамертров else $url = $url_part['path']; return $url; // Возвращаем итоговый URL } echo deleteGET("http://mysite.ru/?view=category&amp;page=5&amp;id=5", "page");

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.