| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Тексты > Проблема с регулярками |
| Автор: DioNiR 9.3.2007, 03:28 |
| У меня есть разные файлы с разными расширениями. Проьлема такова так как я с регулярками почемуто не дружу и не знаю реально ли так сделть. Нужно узнать расширение файла. Проверить существует ли файл расширение.php и вставить его. Если нет то вставляет какой нить по стандарту. как такое организовать? |
| Автор: mishaSL 9.3.2007, 13:00 | ||
| DioNiR, опишите проблему четче, а то непонятно что и где Вы собираетесь проверять. Если Вам необходимо проверить существование файла, то можете воспользоваться http://ru.php.net/file_exists Если Вы хотите из переменной содержащей имя файла получить его расширение, то можно так:
|
| Автор: SelenIT 9.3.2007, 17:59 | ||
mishaSL, имхо, брать расширение файла регулярками - все же перебор. Тем более пример выше не "возьмет", к примеру, .mp3 или .class. По-моему, для большинства практических целей вполне достаточно strrchr('.', $name). А если нужны все расширения (.tar.gz) - то что-нибудь вроде такого...
|
| Автор: mishaSL 9.3.2007, 19:41 | ||
.class - возьмет, а про цифры я и забыл, тогда лучше так:
На практике часто используются имена такого вида: class.file.php У твоего подхода будут проблемки с такими именами... |
| Автор: SelenIT 9.3.2007, 19:58 | ||
mishaSL, так я это и имел в виду - все зависит от того, что считаем расширением. Если только последнее - то достаточно strrchr, если все "от первой точки", как в примере с .tar.gz - то эксплод на 2 части по первой точке. Ну а если нужна полная гибкость и .tar.gz необходимо считать расширением, а class.file в Вашем последнем примере - частью имени, тогда, наверное, действительно только регулярка вроде
p.s. А .class Ваш вариант все-таки не возьмет - там 5 букв... |
| Автор: mishaSL 9.3.2007, 20:26 |
Да это у меня голова после праздника плохо работает... |
| Автор: DioNiR 9.3.2007, 20:51 | ||
Воспользовался
Работает так как и нужно. |
| Автор: SelenIT 9.3.2007, 23:57 |
| DioNiR, обязательно надо было из множества легких вариантов выбрать самый сложный и наверняка в данной конкретной задаче избыточный... |