не работает фильтр

Тема в разделе "PHP", создана пользователем sultan347, 24 сен 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. sultan347

    sultan347

    Регистр.:
    25 апр 2009
    Сообщения:
    230
    Симпатии:
    7
    PHP:
            $nums '"20,01:0d-b8:8.5+a3:0,8d3:131,9:8.a,2e:03-7-0:73,34";'; echo $nums."<br>";
            
    $nums trim(str_replace(".","",str_replace("+","",$nums))); echo $nums."<br>";
            
    $nums str_replace(",",".",$nums); echo $nums."<br>";
            
    $nums filter_var($nums,FILTER_SANITIZE_NUMBER_FLOAT); echo $nums."<br>";
            
    $nums str_replace(".",",",$nums); echo $nums;
    результат
    А я ждал 20,010-88530,83131,98,203-7-073,34
    Фильтр удалил и точки, хотя в инструкции написано "FILTER_SANITIZE_NUMBER_FLOAT — оставляет только 1234567890-+."
    Ну и бог с ним, как написать регулярку, что бы из строки оставил только символы 1234567890,-
     
  2. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    PHP:
    $nums preg_replace('%[^0-9.,-]+%i'''$nums); echo $nums."<br>";
    А вот кстати твой вариант с фильтром
    PHP:
    $nums filter_var($nums,FILTER_SANITIZE_NUMBER_FLOATFILTER_FLAG_ALLOW_THOUSAND); echo $nums."<br>";
     
    sultan347 нравится это.
  3. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    PHP:
    preg_replace('/[^\d,-]/'''$nums);
     
    sultan347 нравится это.
  4. sultan347

    sultan347

    Регистр.:
    25 апр 2009
    Сообщения:
    230
    Симпатии:
    7
    почти работает, только точки пропускает, а их не надо
    вот результат 20,010-88.530,83131,98.,203-7-073,34

    Добавлено через 14 минут
    Это работает на 100%
     
Статус темы:
Закрыта.