@Porovozow

Звездочка в конце строки запроса?

$uri = $_SERVER['REQUEST_URI'];
        
        if(!empty($uri))
        {
                $a = mb_eregi_replace("[^a-z0-9A-Z-\/]", "", $uri);
                $b =  trim($a, "-");
                echo $b;
        }


Выражение, как и надо, удаляет все символы из строки, оставляя a-z, A-Z, 0-9 и -. Но если поставить в конце запроса звездочку *, ничего не выводится.

Без звездочки: site.ru/cat/post-num1-sdcsd*[]==-==-==+++=----**&///
Вывод: cat/post-num1-sdcsdcat/post-num1-sdcsd

Со звездочкой: site.ru/cat/post-num1-sdcsd*[]==-==-==+++=----**&///*
Вывод:

Из-за чего это происходит?
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
тест: https://ideone.com/U1Tk7i

Оба выводят siteru/cat/post-num1-sdcsd------/// как и ожидалось.
Сделайте echo $uri перед заменой, возможно на входе все ломается.

PS:
И я бы делал preg_replace('/[^a-zA-Z\d\/-]/', '', $url);.
Не подскажите зачем у вас eregi и в то-же время a-z-A-Z?
И зачем mb.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы