ФорумПрограммированиеPHP для идиотов → Помогите с регулярным выражением

Помогите с регулярным выражением

  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 12 мая 2010 г. 13:49, спустя 26 минут 42 секунды

    phpdude, да без проблем. Я щас посмотрел регулярку. Её нужно уть доработать, чтобы она остутствующую точку отлавливала.
    + Выражение придумать сложнее, чем пару функций применить
    + Регулрки процессор грузят.
    Но.
    Выражение короче и быстрее понимается, чем твой вариант. Тем более с ифом.
    + Более гибок мой вариант. Если к примеру нужно заменить не название, а расшириение. Или разрешить отсутствие точки ии нет.
    В общм какой из варинтов красивее вопрос как минимум спорный.
  • phpdude

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

    Spritz 12 мая 2010 г. 14:00, спустя 11 минут 2 секунды

    потер
    Спустя 64 сек.
    арте уже привел мой кусок кода который я хотел написать)

    $newName = $newBasename . strrchr($oldName, '.');
    Сапожник без сапог
  • onzone

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

    Spritz 12 мая 2010 г. 15:02, спустя 1 час 1 минуту 27 секунд



    $newName = $newBasename . strrchr($oldName, '.');




    Посмотрел, все варианты наиболее понравися вот этот, только возникла ещё 1 проблема. Допустим у меня файл такого вот типа:


    $filename = 'Test.vtoroi.avi ';// точек может быть n-штук


    Подскажите пожалуйсто варианты ,как убрать все точки кроме посленей. Всем благодарен, за преведённые выше примеры, очень выручили:-)
  • Nyaah

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

    Spritz 12 мая 2010 г. 15:09, спустя 7 минут 34 секунды

    может я чего-то непонимаю, но нафига тебе удалять точки в имени файла, если ты ему имя меняешь, а расширение оставляесшь старым?
    если имя генерится у тебя гдето в другом месте, то просто перед $newName = $newBasename . strrchr($oldName, '.'); сделай реплейс точек на то что тебе надо, str_replace('.', '_', $newBasename); или сразу:
    $newName = str_replace('.', '_', $newBasename) . strrchr($oldName, '.');
    Work, buy, consume, die
  • killich

    Сообщения: 270 Репутация: N Группа: Адекваты

    Spritz 12 мая 2010 г. 15:37, спустя 27 минут 59 секунд

    Здравствуйте, у меня возникла проблема такого рода имеется имя файла, которое занесено в переменную, подскажите пожалуйсто, как изменить имя файла не меняя его формата.
    PHP

    $target = 'file_name.avi';
    $new_name = ereg_replace ('/?/',$name_v,$filename);\\возникла идея использовать такого рода регулярное

    Я плохо разбираюсь в регулярных, как не пытался поменять имя файла до точки (file_name (.avi - формат дожен остаться неизменным)) никак не получилось :(


    Человек задал вопрос. Я дал один из 100.000 вариантов, которые могут ему помочь, но не обязательно помогут.
    Вопрос был об имени file_name.avi - не о file_name…avi? не о ….avi….avi а об file_name.avi

    ВЫВОД: убейте себя (все).. нож на кухне, газ в трубе, бритва в ванной.
    Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru
  • phpdude

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

    Spritz 12 мая 2010 г. 15:48, спустя 10 минут 28 секунд

    killich, не дала? )))))
    Сапожник без сапог
  • onzone

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

    Spritz 12 мая 2010 г. 15:54, спустя 6 минут 17 секунд

    Чёт тупанул я сори забыл, что ф-ция strrchr() мутит всё решил проблему спасибо большое ещё раз=)
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 12 мая 2010 г. 16:11, спустя 16 минут 46 секунд

    phpdude, че потер то?
  • phpdude

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

    Spritz 12 мая 2010 г. 16:11, спустя 44 секунды


    phpdude, че потер то?
    написал уже написаное арте :)
    Сапожник без сапог
  • artoodetoo

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

    Spritz 12 мая 2010 г. 18:15, спустя 2 часа 4 минуты 5 секунд


    Вопрос был об имени file_name.avi - не о file_name…avi? не о ….avi….avi а об file_name.avi

    Ну тогда лучший ответ будет такой:
    $newname = 'newname.avi';
    чо тут думать. на входе одно постоянное значение, на выходе - другое постоянное значение. полная нирвана.

    killich, не парься. все тебя любят.
    ιιlllιlllι унц-унц
  • mario

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

    Spritz 12 мая 2010 г. 18:43, спустя 27 минут 37 секунд


    mario, по моему красиво это когда коротко и прекрасно работает. А не когда 3 оператора на 2 строчки, да еще и не всегда работает.
    по мойму красиво, это когда всё ясно, четко и можно догадаться интуитивно (например человек не знает функций этих, но примерно понимает что оно делает…)
  • Ewg777

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

    Spritz 12 мая 2010 г. 18:45, спустя 1 минуту 39 секунд



    mario, по моему красиво это когда коротко и прекрасно работает. А не когда 3 оператора на 2 строчки, да еще и не всегда работает.
    по мойму красиво, это когда всё ясно, четко и можно догадаться интуитивно (например человек не знает функций этих, но примерно понимает что оно делает…)
    Абстрактный человек никому не интересен. Интуиция у программиста должна иначе проявляться.
  • killich

    Сообщения: 270 Репутация: N Группа: Адекваты

    Spritz 12 мая 2010 г. 19:12, спустя 26 минут 59 секунд



    Вопрос был об имени file_name.avi - не о file_name…avi? не о ….avi….avi а об file_name.avi

    Ну тогда лучший ответ будет такой:
    $newname = 'newname.avi';
    чо тут думать. на входе одно постоянное значение, на выходе - другое постоянное значение. полная нирвана.

    killich, не парься. все тебя любят.



    Ты тоже красафчик.. )

    жара у нас.. хоть и сторона не солнечная в кабинете .. настроение плохое ..
    Спустя 174 сек.
    $newname = 'newname.avi';

    Ты гений! А может ему это и нужно?! ))))
    Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru

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