parse_url заменяет знак плюс пробелом

$url = parse_url('https://plus.google.com/+erikedgren');
$address = ltrim(rtrim($url['path'], '/'), '/');
echo $address;

$address выходы plus.google.com/ erikedgren, Зачем? И как я могу решить эту проблему?

РЕДАКТИРОВАТЬ

Код выше выводит +erikedgren, Но когда я заменяю адрес в $url с $_GET['u'] (от parse_url(https://plu...) в parse_url($_GET['u'])), Я получил plus.google.com/ erikedgren, Позвольте мне объяснить, как работает моя система.

Когда я нажимаю на ссылку на моем веб-сайте на локальном сервере (я еще не выпустил обновление), URL для внешних адресов выглядит следующим образом: http://192.168.1.135/erik-edgren/url/https://plus.google.com/+erikedgren,

Последняя часть с внешним адресом, это то, что $_GET['u'] извлекает Вот как выглядит RewriteRule: RewriteRule ^url/(.*)$ get-url.php?u=$ 1 (без пробелов между $ и 1).

-1

Решение

Судя по вашему обновленному вопросу, это работает для меня:

$url = parse_url($_GET['u']);
$address = trim(rawurldecode(urlencode($url['path'])), '/');
echo $address;

Я тоже заменил ltrim а также rtrim, поскольку trim удалит как с начала, так и с конца.

0

Другие решения

URL кодировать https://plus.google.com/+erikedgren прежде чем включить его в конце вашего URL. + это пробел, если он не закодирован в URL.

0

По вопросам рекламы [email protected]