проблема preg_quote в проекте Laravel - PullRequest
0 голосов
/ 04 марта 2019

Я тестирую функцию preg_quote () в функции поиска в Laravel.Обнаружил странное поведение - «+» не убегает, а убирается с выхода.

preg_quote("a + b"); // "a b"

Пытался вызывать ту же функцию без персонала laravel из cli

php test.phpa // a \+ b

Кажется, Laravel оказывает некоторое влияние на функцию / вывод / что-то еще ...

Laravel 5.7./ php 7.3.1

1 Ответ

0 голосов
/ 04 марта 2019

Я использую почтальона для проверки.request: http://localhost:8000/api/users?skip=0&search=a + b function first line: dd(preg_quote($request->search));

Как я и подозревал, это не проблема с PHP или Laravel, но ваши параметры URL должны быть urlencode д.(Это произойдет, если вы GET используете элемент <form> или создаете URL-адрес с помощью встроенного в Laravel построителя URL-адресов, но если вы делаете запрос Postman вручную, это ваше дело.)

A + в строке запроса URL соответствует пробелу на сервере.Он должен быть экранирован как %2B, так же как и символы вроде #.Вы можете сделать это через urlencode.

http://localhost:8000/api/users?skip=0&search=a%20%2B%20b

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...