#php #regex
#php #регулярное выражение
Вопрос:
Допустим, у меня есть что-то вроде:
amp;page=4
Я хочу заменить это и сделать его пустым, чтобы оно не существовало.
Но этот номер страницы может быть любым, 66, 98, 17, 2, 109, и т.д.
В настоящее время у меня есть что-то вроде:
$currentpage = str_replace("amp;page=", "", $currentpage);
Но мне нужно, чтобы это также удаляло число, как мне это сделать?
Спасибо.
Ответ №1:
$currentpage = preg_replace("/amp;page=d /", "", $currentpage);
Но если вы создаете это самостоятельно, вы должны сделать…
$get = $_GET;
unset($get['page']);
echo http_build_query($get);
Это выведет все параметры GET, красиво сериализованные в виде строки. Когда вы отключаете page
элемент, он, очевидно, не появится 🙂
Комментарии:
1. Это отлично работает, как бы я это сделал, если amp;sort =lowest (удалите все это) — поскольку тот, который вы опубликовали, похоже, работает только для цифровых символов. Должен ли я просто использовать w в отличие от d ?
2. @Kyle Ты мог бы изменить это на
amp;sort=[^amp;$]
.3. знак доллара в
[^amp;$]
не имеет смысла. Внутри символьного класса это буквальный знак доллара. Чтобы получить эквивалентную функциональность как «не конец строки», вы должны сделать что-то вроде:(?!amp;|$)
… Я бы просто оставил это вообще 🙂