PHP urlencode () и пробелы - PullRequest
       1

PHP urlencode () и пробелы

4 голосов
/ 06 сентября 2011

У меня есть эта строка для кодирования (с разрывом строки)

Идентификатор отправителя
Идентификатор отправителя
Идентификатор отправителя

При использовании этого генератора urlencode , Я получаю желаемый вывод, который

Sender%20ID%0ASender%20ID%0ASender%20ID

Однако, когда я использую php urlencode (), я получаю этот вывод

Sender+ID%0D%0ASender+ID%0D%0ASender+ID

При использовании php rawurlencode () я получаю этот вывод

Sender%20ID%0D%0ASender%20ID%0D%0ASender%20ID

Как добиться такой же мощности, как у генератора?Мне нужно, чтобы он был таким же, так как телефон Blackberry будет правильно показывать разрыв строки, только если urlencode для перевода строки равен % 0A (я работаю в системе смс).

Сейчас единственное решение, которое я могу себе представить, - это поиск% 0D% 0A и замена на% 0A

1 Ответ

4 голосов
/ 06 сентября 2011

У вас есть конец строки Windows, который переводится напрямую PHP и игнорируется вашим генератором.Самый простой способ избавиться от этого - просто:

str_replace( "\r\n", "\n", $input );

%0D относится к 13-му символу ASCII: \r.Поскольку сразу за этим следует %0A (\n), ясно, что вместо окончания * nix (\n) у вас есть конец строки MS (\r\n) и что генератор urlencode использует* NIX подход.

...