Формирование строки запроса в PHP. Как безопасно поместить переменные в HTTP-сообщение?

формирование строки запроса в php. как безопасно поместить переменные в http-сообщение?

Особенности построения строки запроса

Довольно часто возникает потребность отправки сообщения другому серверу. Для этого необходимо построить строку запроса. Мы говорим «построить» так как она содержит несколько частей: определение протокола, домена, запрашиваемого пути и параметров.

С первого взгляда задача может показаться простой. Однако существуют определенные ограничения: все пробелы должны быть заменены знаком «+», а специальные символы — шестнадцатеричным кодом. Например, оригинальная строка запроса «http://test-site.ru/path?text=some conten&symbol=*» превращается в «http://test-site.ru/path?text=some+content&symbol=%2A».

Как правило, участок запроса, содержащий домен, протокол и путь имеет только латинские буквы и не требует дополнительных обработок. Однако параметры, задаваемые после символа «?», могут формироваться динамически, поэтому требуют преобразований.

Заметка
Вам совершенно не нужно обрабатывать параметры строки запроса вручную. PHP имеет специальную функцию, позволяющую упростить данную задачу.

Использование встроенной функции

Построение строки запроса в PHP происходит с помощью функции http_build_query(). Она принимает четыре параметра, но только первый является обязательным и самым важным. Функция ожидает получить ассоциативный массив. Все его ключи станут именами параметров, а значения преобразуются в строки, согласно вышеизложенным требованиям. Функция возвращает единую строку, которую можно добавить к URL-адресу.

//формируем строку параметров из массива
$params = http_build_query([
    'fio' => 'Денис Николаевич',
    'status' => 'client',
    'operation' => 1189
]);

echo "http://some-site.com/path?{$params}";

Последние публикации