Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Преобразование номера телефона...

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
magistr
Отправлено: 01 Октября, 2010 - 21:45:21
Post Id



Частый гость


Покинул форум
Сообщений всего: 169
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)




Всем доброе время суток...
Есть номер телефона форма: (123) 45-67-89
Какой функцией его можно преобразовать в формат: 123456789?
Заранее спасибо Улыбка
 
 Top
zardoz
Отправлено: 01 Октября, 2010 - 22:05:56
Post Id


Гость


Покинул форум
Сообщений всего: 100
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. $instr="(123) 45-67-89";
  2. echo preg_replace("/[ ()-]/", "", $instr);


С уважением.
 
 Top
dsb80
Отправлено: 01 Октября, 2010 - 22:07:52
Post Id



Гость


Покинул форум
Сообщений всего: 71
Дата рег-ции: Янв. 2009  
Откуда: СПб


Помог: 0 раз(а)




zardoz пишет:
PHP:
скопировать код в буфер обмена
$instr="(123) 45-67-89";
echo preg_replace("/[ ()-]/", "", $instr);

Вот ненадо пихать регулярки куда ненадо...

Вак вариант http://php.su/functions/?number-format

(Отредактировано автором: 01 Октября, 2010 - 22:13:28)



-----
Не слушайте... После 19.00 вместо меня пишет ПЫВО
 
 Top
Uchkuma
Отправлено: 01 Октября, 2010 - 22:53:19
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




dsb80 пишет:
Вот ненадо пихать регулярки куда ненадо...
Вак вариант http://php.su/functions/?number-format
number_format тут вообще причем? Решили сумничать, потрудитесь прочитать описание функции.
Если необходимо убрать только скобки, пробелы и дефисы, то можно обычной заменой типа str_replace.
 
 Top
Пит
Отправлено: 01 Октября, 2010 - 22:58:19
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




я бы считал в массив символов и проверял каждый символ - число или нет, чтобы отпилить всевозможные нечисла. ибо регуляркой как-то проблематично прицепить дополнительную функциональность, например, если после 6го символа в массиве попадется символ, отличный от тире, например, то 100% неверный ввод номера

(Отредактировано автором: 01 Октября, 2010 - 23:06:28)

 
 Top
Uchkuma
Отправлено: 01 Октября, 2010 - 22:58:48
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




А если уж регуляркой, тогда
 
 Top
zardoz
Отправлено: 01 Октября, 2010 - 23:07:20
Post Id


Гость


Покинул форум
Сообщений всего: 100
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




Uchkuma пишет:
А если уж регуляркой, тогда

Да. Все верно. Чего уж размениваться на скобки и т.д.

С уважением.
 
 Top
JustUserR
Отправлено: 02 Октября, 2010 - 01:40:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Пит Согласно рассмотрению фактических алгоритмов для разбора указанной строки с применением регулярных выражений и посимвольного доступа второй вариант является более предпочтительным - однако на практике язык PHP предоставляет доступ к объекту исходной строки как единому целому информационному полю - в силу чего операции регулярных выражений могут работать в некоторой мере быстрее - за счет применение интегрированных в интерпретатор функция в компилированном виде


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
KonstantinK
Отправлено: 02 Октября, 2010 - 10:27:06
Post Id



Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




JustUserR Странно мне казалось что регулярки далеко не самое быстрое явление в PHP , поэтому решение Пит ИМХО было бы предпочтительней.
 
 Top
Uchkuma
Отправлено: 02 Октября, 2010 - 10:43:26
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




О какой скорости вы говорите в строке максимум из 18 символов с простейшими правилами поиска?
 
 Top
Ch_chov
Отправлено: 02 Октября, 2010 - 11:40:11
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Все это можно легко проверить, на моем комьютере:

Выполняется за 4.4 мкс.


Выполняется за 4.2 мкс.

Порядок цифр говорит от том, что заморачиваться над этим вообще не стоит...


Если нужно какое то более продвинутое форматирование, то можно поискать готовые решения: http://habrahabr[dot]ru/blogs/php/102352/
 
 Top
KonstantinK
Отправлено: 02 Октября, 2010 - 12:22:19
Post Id



Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




Получается регулярка быстрее - учту на будующее Улыбка
 
 Top
Uchkuma
Отправлено: 02 Октября, 2010 - 14:49:14
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




KonstantinK пишет:
Получается регулярка быстрее
При такой разнице совершенно неважно, какой вариант быстрее, а важно то, какой вариант является наиболее простым и легким для восприятия и дальнейшей поддержки.
 
 Top
JustUserR
Отправлено: 03 Октября, 2010 - 00:45:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




KonstantinK пишет:
JustUserR Странно мне казалось что регулярки далеко не самое быстрое явление в PHP , поэтому решение Пит ИМХО было бы предпочтительней
При анализе эффективности работы некоторых решений необходимо проводить учет не только их фактической организации алгоритмов для общего случая - но также и использование в совокупности в некоторыми реальными объектами программы В динамических языках программирования таких как PHP & Perl & JS строковые объекты не являются аналогами массисов с набором символов и представлены в виде единой структуры - в таком случае осущесвление доступа к отдельным символам является возможным однако не предоставляет взаимодействие с внутренним хранением информации В силу указанной причины механизм регулярным выжарений является более эффективным - поскольку при задействовании шаблона выполнение всех обеспечивающий операций производится внутренними средствами PHP-интерпретатора представленными в скомпилированном приложении - в то время как набор строковых операций в действительности создает дополнительное количество обращений


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB