Проблема с кодировкой php file_get_contents - PullRequest
0 голосов
/ 08 февраля 2012

Я пытаюсь интегрировать услугу SMS в мой сайт.Мне нужно сделать HTTP-вызов с параметром с именем «msg» (urlencoded).

В настоящее время я создаю весь URL с параметром msg urlencoded (т.е. $msg = urlencode($msg)), и я отправляю SMS.

$msg = urlencode("Hello World");

Хотя на моем телефоне я получаю сообщение «Hello + World», а НЕ «Hello World».

Так есть ли проблема с file_get_contents?

Кроме того, есть ли вообще, я вижу строку "file_get_contents", наконец, отправляемую?

Ответы [ 3 ]

1 голос
/ 08 февраля 2012

Я понял, в чем проблема:

Я использовал http_build_query для создания строки запроса, и я передавал urlencode 'dпарам к этому.Следовательно, он был закодирован дважды.

Так есть ли проблема с file_get_contents?

Нет.

Также есть лиВ любом случае, я вижу строку, которую file_get_contents наконец отправляет?

Да, с помощью сетевого анализатора.

1 голос
/ 08 февраля 2012

Попробуйте использовать rawurlencode().

Принципиальное отличие (хотя есть и другие) состоит в том, что он кодирует пробелы как %20 вместо +.Это вполне вероятно источник вашей проблемы.

0 голосов
/ 08 февраля 2012

Вам нужно использовать urldecode () после получения данных, а затем отобразить пользователю

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