Замена %20 в ссылке

215
17 августа 2018, 06:00

Возможно ли в ссылке http://test/phone=%20380999123123 %20 заменить на + и выводить все это в адресную строку?

Answer 1

Например если вы через JavaScript хотите это сделать, а после обратиться через такую ссылку к серверу, то для этого, как-раз и используется метод encodeURIComponent или encodeURI - которые как-раз и заменяют пробелы на %20 - для обратного декодирования используется метод decodeURIComponent или decodeURI.

Чтобы заменить на + нужно воспользоваться методом replace.

var str = '%20380999123123%20';
console.log(decodeURIComponent(str).replace(/ /g,'+')); // +380999123123+

decodeURIComponent - в данном случае бесполезен, так-как, можно воспользоваться таким вариантом:

var str = '%20380999123123%20';
console.log(str.replace(/%20/g,'+')); // +380999123123+

Но вот если вдруг, будут другие закодированные символы, то как-раз decodeURIComponent принесет пользу.

В случае с php, нужно воспользоваться сначала функцией urldecode, а потом urlencode:

$str = '%20380999123123%20';
$str = urldecode($str);
echo urlencode($str); // +380999123123+
Answer 2
  this.phone = url.searchParams.get("phone").replace(' ', '+');
READ ALSO
Общий механизм взаимодействия с бд

Общий механизм взаимодействия с бд

Решил написать проект (учебный) на laravelИ так как это известный фреймворк естественно посмотрел как он устроен

159
Вставить символ в переменную php

Вставить символ в переменную php

Каким образом можно подставить знак ; между переменной в php , которая формируется подстановкой из URI:

188