Я несколько часов стуча головой в стену, я все еще не мог понять эту проблему. У меня есть ассоциативный массив, и когда я пытаюсь построить с ним запрос, он показывает странные символы в браузере.
$reportVars = [
"__report" => "alpha",
"start_date" => "2001",
"end_date" => "2002",
"dsp_id" => "SPP",
"current_sp_id" => "SPP_1",
"sp_name" => "fawzan"
];
print_r(http_build_query($reportVars));
Это результат, который я получаю в браузере
__report=alpha&start_date=2001&end_date=2002&dsp_id=SPP¤t_sp_id=SPP_1&sp_name=fawzan
Обратите внимание на странный символ (¤) на выходе после SPP. Прежде чем спросить "Нет", я не копировал его нигде. Я просто набрал его голыми руками.
Может ли кто-нибудь помочь мне здесь?
& curren преобразуется в ¤
у вас может быть несколько вариантов:
переместите current_sp_id
сверху, сделав его первой переменной, чтобы не было &
до этого
используйте &
качестве разделителя вместо &
only, используя:
print_r(http_build_query($reportVars, '', '& amp;'));
(удалите пробел между &
и amp
, добавив его, потому что он также преобразован в & только здесь).
PS php не вызывает этой проблемы в соответствии с моим пониманием, это то, как ваш браузер обрабатывает & curren, вероятно, превращая его в самого себя