Здравствуйте!
Изучаю PHP и вот с такой проблемой столкнулся:
Есть форма с которой я получаю данные (в форме одно поле, по-сути это поиск), если я введу 2 слова, к примеру "привет мир" - то обработчик так и получит эти 2 слова.
Задачка: каким-то образом поставить между этими словами знак "+". Чтобы получилось на выходе так: привет+мир. Если слов 3,4 и т.д. - то их все нужно склеить через "+".
Далее, то, что получается - я кидаю в переменную и уже дальше работаю с ней.
Вангую, что автор пытается из input элемента взять данные и послать в виде get запроса в поисковик.
Типа открываем поиск google, вводим запрос "привет мир", отправляем.
А в адресной строке видим нечто: https://www.google.com/search?q=привет+мир
Но браузер вас обманывает, пытаясь сделать более человечный вид параметру q, там не совсем "привет", и не совсем "мир" (скопировав адрес в блокнот, можно убедиться в этом).
Для подготовки такой строки нужно придерживаться стандарта RFC 3986.
На стороне PHP достаточно использовать функцию rawurlencode/rawurldecode.
А на стороне JS чуть по сложней.
Есть encodeURIComponent, но эта функция не полностью отвечает стандарту кодирования.
Нужно делать костыль в виде:
Но вообще, если запрос нужно отправить через ajax, то не нужно изобретать кодирование. Объект XMLHttpRequest сам сделает нужно преобразование при добавлении get параметра.