Странная проблема кодирования в PHP

1

Я несколько часов стуча головой в стену, я все еще не мог понять эту проблему. У меня есть ассоциативный массив, и когда я пытаюсь построить с ним запрос, он показывает странные символы в браузере.

$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. Прежде чем спросить "Нет", я не копировал его нигде. Я просто набрал его голыми руками.

Может ли кто-нибудь помочь мне здесь?

  • 0
    попробуйте изменить последовательность переменной? Скажите, пожалуйста, если это делает какой-либо раз
  • 0
    Я тоже это попробовал. Я переместил current_sp_id, Не повезло: /
Показать ещё 10 комментариев
Теги:
encode

1 ответ

3
Лучший ответ

& curren преобразуется в ¤

у вас может быть несколько вариантов:

  1. переместите current_sp_id сверху, сделав его первой переменной, чтобы не было & до этого

  2. используйте &amp качестве разделителя вместо & only, используя:

    print_r(http_build_query($reportVars, '', '& amp;'));

(удалите пробел между & и amp, добавив его, потому что он также преобразован в & только здесь).

PS php не вызывает этой проблемы в соответствии с моим пониманием, это то, как ваш браузер обрабатывает & curren, вероятно, превращая его в самого себя

Ещё вопросы

Сообщество Overcoder
Наверх
Меню