ФорумПрограммированиеPHP для идиотов → Регулярки

Регулярки

  • kReNDel

    Сообщения: 9 Репутация: N Группа: Кто попало

    Spritz 24 августа 2009 г. 9:23

    Проблемка :). Существует разделение строк с помощью регулярок - функцией split.

    while ($file=readdir($dir))
    {
    if (eregi('[a-zA-Z0-9_\-]+\.[zip]|[rar]+$',$file))
    {
    $arr=split('\.',$file);
    while(list($key,$value)=each($arr)) echo "<li>$arr[0]</li>";
    }
    }

    Из папки достается название файла, проверенного регуляркой, пытаюсь его имя разделить по точке на имя и zip/rar. В папке 1 файлик, но вывод происходит двойной, т.е. например в папке лежит abc.zip выводит же - abcabc…
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 24 августа 2009 г. 9:27, спустя 4 минуты 1 секунду


    while ($file=readdir($dir))
    {
    if(preg_match('~([a-zA-Z0-9_\-])+\.(zip|rar)+$~', $file, $matchs)) {
    echo $matchs[1];
    }
    }
    adw/0
  • kReNDel

    Сообщения: 9 Репутация: N Группа: Кто попало

    Spritz 24 августа 2009 г. 9:45, спустя 18 минут 20 секунд

    Благодарю :) Со скобками еще "поиграл" в вашем коде и все получилось, а то там сначало вывод последней буковки в имени файла был :) Спасибо!
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 24 августа 2009 г. 9:51, спустя 5 минут 9 секунд

    а то там сначало вывод последней буковки в имени файла был :)
    надо было тогда просто добавить ^ в начало шаблона
    adw/0
  • kReNDel

    Сообщения: 9 Репутация: N Группа: Кто попало

    Spritz 24 августа 2009 г. 9:55, спустя 4 минуты 53 секунды

    возможно… + я не учёл в регулярке вхождение пробела… -)
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 24 августа 2009 г. 9:57, спустя 1 минуту 50 секунд

    adw0rd, когда тире стоит к конце или начале регулярки его не надо отслешивать
    тоесть
    /[-0-9a-z]/

    но
    /[0-9\-a-z]/
  • kReNDel

    Сообщения: 9 Репутация: N Группа: Кто попало

    Spritz 24 августа 2009 г. 11:37, спустя 1 час 39 минут 21 секунду

    Продолжу лучше эту тему. А можно ли как-то, вот из полученной строки, допустим в $first записать только первую букву этой строки? К сожалению, у самого идей никаких не приходит и запрос на поиск в интернете составить тяжеловато, вс не то… :(
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 24 августа 2009 г. 11:52, спустя 15 минут 21 секунду

    $first = $string{0}
  • kReNDel

    Сообщения: 9 Репутация: N Группа: Кто попало

    Spritz 24 августа 2009 г. 11:56, спустя 4 минуты 9 секунд

    Благодарю :) Все так просто… Что-то я совсем…
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 24 августа 2009 г. 12:10, спустя 13 минут 28 секунд


    Благодарю :) Все так просто… Что-то я совсем…
    крендель ^^
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!