Проблема аргумента тонкого маршрутизатора

Простой код

$app->get('/hello/{name}', function (Request $request, Response $response, $args) {
    $name = $args['name'];
    $response->getBody()->write("Hello, $name");
    return $response; });

Когда я передаю имя типа (client--side-?validation.pdf) в качестве аргумента

Нравится:

http://localhost:8085/hello/client--side-?validation.pdf

Я получаю вывод, например:

Здравствуйте, клиент-сторона-

Некоторые символы, такие как: ?, @, +, # и т. д., имеют проблемы.

Slim не будет возвращать полное имя (client--side-?validation.pdf), поскольку мы прошли.

Вопрос: Каким будет решение этой проблемы?


person Niko Jojo    schedule 14.05.2020    source источник
comment
Вам нужно будет избежать аргумента - stackoverflow.com/questions/332872/ кодировать-url-в-javascript   -  person Nigel Ren    schedule 14.05.2020
comment
@NigelRen, можно привести пример кода?   -  person Niko Jojo    schedule 14.05.2020
comment
Я предполагаю, что вы генерируете эти URL-адреса в PHP. Если это не так, сообщите нам об этом.   -  person Álvaro González    schedule 15.05.2020
comment
@ ÁlvaroGonzález, это имя файла является путем маршрута. не URL-адреса. поэтому urlencode/urldecode не работает в этом случае   -  person Niko Jojo    schedule 18.05.2020
comment
Ты пытался?   -  person Álvaro González    schedule 18.05.2020