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 :: Устаревшие функции ereg и eregi чем заменить?

 PHP.SU

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


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

> Без описания
gheka
Отправлено: 17 Января, 2012 - 20:33:10
Post Id



Частый гость


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


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




Здравствуйте есть функция получения целого числа из суммы.
В ней есть функция eregi () но она выдаёт ошибку так как в 5.3 версии скрипта её уже как я прочитал не используют подскажите чем можно заменить её?

PHP:
скопировать код в буфер обмена
  1.  
  2. FUNCTION numbersceil($a) {
  3.         if (eregi ( "\.", $a )) {
  4.                 $a = str_replace ( ',', '.', $a );
  5.                 $a = number_format ( $a, 2, '.', '' );
  6.                 return $a;
  7.         } else {
  8.                 return $a;
  9.         }
  10. }
  11.  
  12.  


И если у вас есть по лучше способ получения целого числа из суммы поделитесь пожалуйста.
 
 Top
vectorserver
Отправлено: 17 Января, 2012 - 20:35:11
Post Id



Гость


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


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




preg_match()
 
 Top
DlTA
Отправлено: 17 Января, 2012 - 21:35:48
Post Id



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


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


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




gheka пишет:
f (eregi ( "\.", $a )) {
                $a = str_replace ( ',', '.', $a );

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

судя по всему результатом функции должно было быть число и не важно целое или дробное
посему достаточно было сделать

 
 Top
Okula
Отправлено: 17 Января, 2012 - 21:43:22
Post Id



Участник


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


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




DlTA, floatval() съести такую строку:
5.26.264
получиться 5.26
 
 Top
gheka
Отправлено: 17 Января, 2012 - 22:26:09
Post Id



Частый гость


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


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




DlTA пишет:
gheka пишет:
f (eregi ( "\.", $a )) {
                $a = str_replace ( ',', '.', $a );

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

судя по всему результатом функции должно было быть число и не важно целое или дробное
посему достаточно было сделать



да целое число и дробное тоесть.

сумма имеется ввиду деньги они обычно пишутся в виде 10 wmz, 0.10 wmz и так далее, в итоге должно получится 2 знака после точки.

и последнюю цифру округлить до целого.
Тоесть допустим число 0.0176575 он округлит до 0.02 вот в чём заключается суть функции.

Ваш верянт пропускает такой момент сумма 0.015 ваш верянт так и выведет 0.015 а надо 0.02.

(Отредактировано автором: 17 Января, 2012 - 22:35:56)

 
 Top
Okula
Отправлено: 17 Января, 2012 - 23:08:20
Post Id



Участник


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


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




Для округления есть математическая функция round()
Прежде чем писать велосипеды стоит в справочник заглянуть.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB