[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Добавление запятых
hammer_tm
Здравствуйте, помогите пожалуйста!
Имеется следующий код:

if ($_POST['phones'] == "") {
die('Ошибка! Вы не указали ни одного телефона');
} else {
$phones = $_POST['phones'];
};

echo $phones;


В textarea пишется как:
79999999999
78888888888
75555555555

Результат в echo:
79999999999 78888888888 75555555555

Нужно что бы было такого вида:
79999999999,78888888888,75555555555

без пробелов но с запятыми. И БЕЗ запятой в конце 75555555555

Возможно ли такое осуществить?
inpost
str_replace , заменяет 1 символ на другой. У тебя надо заменить символ переноса на запятую.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
hydrogen
Как-то так:
$phones = preg_replace('#[\r\n]+#', "\n", trim($phones));
$phones = explode("\n", $phones);
$phones_string = implode(', ', $phones);


Либо можно сразу preg_split() использовать вместо первых 2х строк.

Либо действительно, как посоветовали выше, сразу же делать замену preg_replace('#[\r\n]+#', ', ', $phones). Смотря где и как тебе потом еще эти данные (телефоны) нужны будут.

_____________
inpost
hydrogen
А ты весёлый :)
echo trim(preg_replace('#\s+#us',',',$_POST['text']),',');


_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
hydrogen
inpost, а если несколько пустых строк подряд?
P.S. Первоначальный вариант поправил, конечно. Временное помутнение... wink.gif

_____________
inpost
hydrogen
Я тоже подправил мой вариант. \s -возьмет и пробелы, и табуляции и переносы под одну гребёнку из-за модификатора s.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
hydrogen
Цитата (inpost @ 23.11.2012 - 00:17)
hydrogen
\s -возьмет и пробелы, и табуляции и переносы под одну гребёнку из-за модификатора s.

В телефонных номерах могут пробелов натыкать (8 900 1234...). Так что \s не подходит.

Да, и обрезать trim'ом тоже надо, конечно...

_____________
hydrogen
Просто список телефонов еще явно не раз понадобится, поэтому лучше их все-таки в массив. А то какое-то соитие контроллера с представлением получается... Неправославно! biggrin.gif

_____________
inpost
hydrogen
Тут исходить из задачи надо. Выше же написаны телефоны в таком стиле. Если с пробелами, то хватит и \r\n, как у тебя.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
hydrogen
inpost, ну по поводу задачи ты прав конечно. Просто раз мы говорим о данных из формы, то лучше априорно считать, что там может быть что угодно в любом виде )

Цитата
Если с пробелами, то хватит и \r\n, как у тебя.
Да не, я про то, что в случае пробелов, preg_replace с \s еще и в сами номера запятых натыкает.

_____________
hammer_tm
Спасибо, вариант подходит.
echo trim(preg_replace('#\s+#us',',',$_POST['text']),',');



Но какие еще параметры можно добавить к
#\s+#us
что бы вырезались все буквы a-z, а-я (во всех регистрах), и все символы типа (@,!,^,&,+,-,_,?,/,*)

С пробельными телефонами, вида: 8 900 123 можно поступить так:

<script type="text/javascript">
function calc()
{
val = $.trim($("#textareaid").val()).split(/\s+/g);
$("#textboxidcount").val($.grep(val,function (str) { return $.trim(str).length>10; }).length);
}
</script>


<input type="text" size="3" disabled id="textboxidcount">


Т.е. считать за верный формат телефона только те данные, которые состоят из более чем 10 цифр
Но это пример для <input type и просто вывода на экран, как задать его в виде переменной в PHP?

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.