За последние 24 часа нас посетили 18120 программистов и 1589 роботов. Сейчас ищут 1029 программистов ...

тупой вопрос на обработку строк .. Но сам че то не вдуплю

Тема в разделе "PHP для новичков", создана пользователем wtfowned, 12 дек 2007.

  1. wtfowned

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

    С нами с:
    4 окт 2007
    Сообщения:
    37
    Симпатии:
    0
    Привет всем .
    Есть строка , допустим '22*123'.
    На самом деле вместо * у меня там находится пробельный символ ,попавший туда видимо из смеси кодировок ( эт опустим ), который никак не реплейсится . Бред какой то.
    В общем КАК можно УДАЛИТЬ все символы из строки , кроме цифр ?
    Срочно надо , заранее спасибо .
     
  2. armadillo

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

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    Он не пробельный, а какой-нибудь 160.
    регуляркой или проходом по строке.
     
  3. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Я знаю, я извращенец :))))
    Подходит только для целых чисел. Вот:
    PHP:
    1.  
    2. <?php
    3. $a = "2007*12*12";
    4. function _num ($string) {
    5. $arr = str_split ($string);
    6. $res = '';
    7. for ($i = 0; $i < count ($arr); $i++){
    8. if (is_numeric ($arr[$i])) $res.= $arr[$i];
    9. }
    10. return $res;
    11. }
    12. $myresult = _num ($a);
    13. echo $myresult; // 20071212
    14. ?>
    15.  
     
  4. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Да проще можно.
    Код (Text):
    1. <?php
    2. $str = '123* 5435 ffdg 332';
    3. $int = '';
    4.  
    5. for ($i = 0, $c = strlen($str); $i < $c; $i++)
    6.     if (is_numeric($str[$i]))
    7.         $int .= $str[$i];
    8.  
    9. echo $int;
    Строка тоже массив, только неизменяемый.

    P.S. Три года вспоминал имя функции strlen(). Что за бредовые позывы были у разработчиков, когда они делали strlen() и count()?
     
  5. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    lexa, строка не является массивом. хотя синтаксис доступа к элементу и похож..
     
  6. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    dark-demon, ну да строка это строка, я немного не так сказал. ;) <- типа-я-такой-ошибся-но-сам-то-знаю-знаю-смайлик