За последние 24 часа нас посетили 19148 программистов и 1644 робота. Сейчас ищут 835 программистов ...

работа с числами с пробелами и разделителем запятая

Тема в разделе "Прочие вопросы по PHP", создана пользователем tokamame, 2 апр 2013.

  1. tokamame

    tokamame Активный пользователь

    С нами с:
    18 мар 2011
    Сообщения:
    13
    Симпатии:
    0
    Адрес:
    москва
    Добрый день!
    Для одного из проектов возникла необходимость разработать скрипт, вычисляющий данные на основе числовых данных, введенных пользователем (например: "20 000", "20 000,00", "20 000,3562", "админ, ты лох", "php injection start" и тд.)
    Требования к проекту
    1. Данные могут быть введены в виде текста (как отсеять текст и оставить только числа, но при этом оставить разделитель "запятую")?
    2. При этом данные могут быть введены из Эксель, т.е. числа могут быть с пробелами (20 000), с запятыми (20 000,00). Допустим с этим сам разобрался, натравил функцию str_replace.
    А вот со всем остальным -
    1. Что разумнее - сначала искать, есть ли вхождения чисел и знака разделения (,) в строку, если не выполняется на 100%, сразу писать, "Пользователь, проверь данные"?
    У пользователя может быть число 20000,3562, мне надо округлить до 2 знаков после запятой. Применил stripos, вычислил позицию запятой, дальше не знаю куда рыть.
    И еще, в таких темах гуру любят ср**ть кирпичами, просто те, кто знает php, напишите, примени ту функцию, затем эту - получишь результат. Я не прошу готовый код.
     
  2. PURGENOID

    PURGENOID Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    12
    Симпатии:
    0
    Адрес:
    Город, где умирают чаще, чем рождаются
    Т.к. ты не просишь готовый код:
    preg_replace()
    round()
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    в пхп строка прозрачно превращается в любой другой тип. тебе надо выкинуть всё кроме цифр, точки и запятой. Потом подменить точку на запятую или запятую на точку в зависимости от локали пхп, и чего он там думает о разделителях. а потом просто ченить типа round применить, да.
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    Код (Text):
    1. preg_replace("/[^0-9]/", "", $text);
    на всякий случай)

    Добавлено спустя 5 минут 34 секунды:
    PURGENOID во первых тут не спрашивают как выключить компьютер. во вторых подумай головой, что возможно в хостинге стоит эта функция в disable_functions
     
  5. PURGENOID

    PURGENOID Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    12
    Симпатии:
    0
    Адрес:
    Город, где умирают чаще, чем рождаются
    Дятел, подпись отличать научись.
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    с дятлами по-осторожнее. уебенил себе подпись больше чем сообщение и наезжаешь. ошибиться не трудно.
     
  7. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Да, да и проверка твоя говно полнейшее...
    Тут одним if обойтись как не фиг петь, а не тремя.
    Да и переменную брать в isset еще и в кавычки, нужно быть дятлом конкретным.

    PURGENOID, тебе суда http://govnokod.ru
     
  8. PURGENOID

    PURGENOID Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    12
    Симпатии:
    0
    Адрес:
    Город, где умирают чаще, чем рождаются
    Да, с переменной ошибился, случайно, разумеется.
    Этих функций нету в PHP вовсе, надеюсь вы понимаете. Т.н. "код" написан за пару минут, просто так.
    Я-же не буду, упоротый в дрова, адекватно думать над тем, как мне продумать код над несуществующими функциями.
    Дятел - слово вполне себе русское, не содержит ничего оскорбительного. Если человек в глаза долбится и не может заметить, что этот код как-то не к относится к вопросу ТС вовсе, то он дятел. Логично, программисты? ;D
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну значит будем все дружно звать тебя дятлом, дятел.

    там вообще не понятно кто такая мери джейн и зачем ты о ней пишешь и что делает этот код, и как можно курить женщину.
    кто-то хотел повыёбываться, и получилось говно. да дятел?
     
  10. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Ой блин... :D. не заметил.
     
  11. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    Если на то пошло то могу тебя послать за прочтением стандартизации подписей (если ты вобще понимаешь что такое стандартизация).
    Насчет моей ошибки - бывает со всеми и я в ответ ничего возмутительного не писал чтоб тебя так БОМБАНУЛО ))
    и на последок... поддержу igordata.
    PURGENOID приятно было познакомиться дятел.
     
  12. tokamame

    tokamame Активный пользователь

    С нами с:
    18 мар 2011
    Сообщения:
    13
    Симпатии:
    0
    Адрес:
    москва
    Спасибо большое, чувачелла! Никогда не понимал регулярок.

    PS. Задача выполнена, всем кто не кичился своей "гурустостью", также гигантская благодарность.
     
  13. PURGENOID

    PURGENOID Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    12
    Симпатии:
    0
    Адрес:
    Город, где умирают чаще, чем рождаются
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    задрот тут только ты, дятел =)
     
  15. PURGENOID

    PURGENOID Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    12
    Симпатии:
    0
    Адрес:
    Город, где умирают чаще, чем рождаются
    Разбить бы тебе лицо в пяти местах. И пальчики переломать, дабы делом занялся, а не на форуме посты набивал.
     
  16. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Наркоман ебаный, дятел.
     
  17. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    (Не)уважаемый дятел. Данный ресурс зарегистрирован на территории РФ и на него распространяется действующее законодательство.
    Ст 119 УК РФ
    Ст 6.13 КоАП РФ

    Напоминаю, что ваше нахождение на форуме обязывает вас соблюдать [принятые вами в процессе регистрации] условия пользования:
    Уважаемая Администрация. Во избежание проблем с органами исполнительной власти [и ухудшения общей дружелюбной атмосферы на форуме], предлагаю:
    1. убрать подпись (далее Подпись), пропагандирующую потребление наркотических препаратов
    2. запретить пользователю-владельцу Подписи устанавливать подписи [в связи с отсутствием адекватности при использовании данной функции]
    3. запретить доступ пользователю-владельцу Подписи до окончания весеннего обострения [в связи с отсутствием адекватности в его поведении]
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    давай попробуй. приходи чо.

    агагага га! http://forum.xakep.ru/m_1519269/tm.htm такой тупой что своим же сообщением с логом разговора показывает какой он тупой и гордится этим. агагагага га!

    Добавлено спустя 24 минуты 4 секунды:
    Саша-дятел из москвы, 23.06.1990 днюха, (926) 234-66-39 или (905) 543-4422
    агагага набей мне ебало укурок малолетка =)

    агагагагагагыга http://vk.com/purgenoid вот это он
    [​IMG]
    багагагага
    Подрочи, пройдёт, братуха!
     
  19. r3l0c

    r3l0c Активный пользователь

    С нами с:
    10 янв 2013
    Сообщения:
    453
    Симпатии:
    4
    Мвахахах :D, осадили парнягу xD. Старичек гугл на нашей стороне xD
     
  20. PURGENOID

    PURGENOID Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    12
    Симпатии:
    0
    Адрес:
    Город, где умирают чаще, чем рождаются
    Даже не знаю, кто там кого осадил =)
    Спасибо за PR моего ВК, кстати. Я не просто так везде делаю один никнейм =)
    Занимайтесь лучше спортом, девушку себе найдите. Хотя нет, у вас тут своя атмосфера. Мне тут реально делать нечего =P
    Удачи Вам на Вашем крайне ценном ресурсе, от которого я ожидал большего. Лучше - задавать вопросы тупым америкосам на офсайте. А ещё лучше - думать самому.
    P.s. Ganzal, ебани себя трубой по голове. Может полегчает и начнёшь отличать прямой текст от текста с намёком. Банить он за код собрался =D
    P.p.s. Несамореализовавшиеся дрочеры, которых били в школе руками и ногами за всю хурму. Не имеющие ни здравого смысла, ни чувства юмора, ни знаний в том, с чем им приходится столкнуться. Вот и самоутверждайтесь себе на форумах =D
    logout();
     
  21. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Подрочи! Подрочи! (все вместе) ПОДРОЧИ!

    ну тут только ты такой =) уменя-то машинка черненькая, немецкая, полноприводная и не джип, жена красивая, дочка умная.
    ташто, тешь себя отмазами. перечитаешь/вспомнишь через пяток лет - будет стыдно.

    хотя кстати по фотке ты не дебил. просто походу социопат одинокий.
     
  22. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Да он то понимает в отличии от тебя.
    Ты говоришь ерунду...

    Раздел:
    Программирование на PHP - работа с числами с пробелами и разделителем запятая

    Даже не:
    PHP для новичков и не Прочие вопросы по PHP не Вопросы от блондинок или HUMOR.PHP.RU.

    Ты ошибся разделом.
    И пытаешься сделать себя выше всех.

    Зачем? Уже бы признался как я это делаю, да я говно, да это тоже, если реал знающие говорят, я буду еще их расспрашивание со злости))) но не убеждать, что это я крутой такой все умный и буду стоять на своем фиг переубедят.

    Но от igordata мне летят предупреждения, но думаю он сам тоже не лучше =)
    Ибо тоже <матное слово> говорит. =)
     
  23. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    нет это ты мудак!
     
  24. Olga-Li

    Olga-Li Новичок

    С нами с:
    26 сен 2013
    Сообщения:
    65
    Симпатии:
    0
    Нужна ваша помощь!
    Что делать,если запятую не нужно выводить на экран, а она относится к части кода?
    В данном случаи как в строке номер 6.
    1)function now(){
    2) $path='tmp';
    3)$fail=dirname($path);

    4)$search= $_FILES['file']['name'];
    5)$search_1= $_FILES['file']['tmp_name'];
    6) $ff=$search_1,$fail.$search; // $search_1 это путь до папки
    // $fail-сама папка
    //$search- название файла загружаемого в папку
    в данном случаи запятая
    7) fopen($ff,'r');


    }
    выводит ошибку: Parse error: syntax error, unexpected ',' in X:\home\localhost\www\autocomplete\forms.php on line 136

    Если $ff=$search_1. ','. $fail.$search;
    fopen($ff, 'r');
    Warning: fopen(X:\tmp\phpB97B.tmp,.Sleep Away_2.mp3) [function.fopen]: failed to open stream: No such file or directory in X:\home\localhost\www\autocomplete\forms.php on line 162

    Что делать с запятой?
     
  25. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    второй вариант правильный. Вы можете прочесть текст ошибки? =) он простой.