Если вам нужно оценить значение true, только если после /category/
есть символы, тогда вам нужно сделать квантификатор «один или несколько» (+
) вместо «ноль или более» (*
).На самом деле, вам нужно только проверить, есть ли один символ после /category/
, поэтому «любой символ» необязательный.
Это способ:
if (preg_match('~/category/.~', $_SERVER['REQUEST_URI'])) {
Сохранитьпомните, что шаблонам регулярных выражений нужны «разделители шаблонов» в php.На этот раз я использовал тильды.Ваш первый шаблон интерпретировался механизмом регулярных выражений как category
и рассматривал косые черты как разделители - это означает, что вы могли сопоставлять «scategory-boardgame».
Если вам нужно сопоставление без учета регистра,напишите i
после 2-й тильды.(Модификатор шаблона)
Если вам необходимо убедиться, что символы, следующие за /category/
, не являются строкой запроса или якорной частью URL-адреса, вы можете отфильтровать ?
и #
.
~/category/[^?#]~