Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск в строке типа документа
 
 автор: TetRiska   (06.12.2010 в 13:42)   письмо автору
 
 

Всем привет. Помогите подправить регулярку.
/.doc$/

Нужно чтобы в ссылке на файл искало нужный тип документа и сообщало мне, указано верно или нет. Т.е. в данном случае если ссылка будет http://blabla.ru/text.doc -> все ок, но не должно быть такого как:
http://blabla.ru/doc
http://blabla.ru/.doc
http://blabla.ru.doc

Обязательно должен быть слеш, потом название, точка и тип документа. Помогите написать верно. Спасибо.

  Ответить  
 
 автор: TetRiska   (06.12.2010 в 14:39)   письмо автору
 
   для: TetRiska   (06.12.2010 в 13:42)
 

немного изменил
/\/.doc$/

Теперь учитывает и слеш после домена и точку, но если поставить 2 слеша и убрать точку, все сработает, но не должно :(, т.е. так сработает
http://blabla.ru//doc

  Ответить  
 
 автор: Trianon   (06.12.2010 в 14:46)   письмо автору
 
   для: TetRiska   (06.12.2010 в 14:39)
 

точку (если Вы под ней имеете в виду символ пунктуации, а не шаблона) экранировать нужно.

  Ответить  
 
 автор: TetRiska   (06.12.2010 в 15:13)   письмо автору
 
   для: Trianon   (06.12.2010 в 14:46)
 

/[A-Za-z0-9\.-]\.doc$/

Емм, а как теперь избавится от двойного слеша перед названием документа? Чтобы не было такого как: http://test.ru//test.doc
И еще, вариант с названием файла я так понимаю не пройдет если он будет на русском? Мне бы нужно не обращать на название файла внимание, просто оно должно быть, а какое, то после заливки оно сменится.

  Ответить  
 
 автор: Trianon   (06.12.2010 в 15:22)   письмо автору
 
   для: TetRiska   (06.12.2010 в 15:13)
 

http://test.ru//test.doc

чем Вас не устраивает это?

  Ответить  
 
 автор: TetRiska   (06.12.2010 в 15:41)   письмо автору
 
   для: Trianon   (06.12.2010 в 15:22)
 

работать то будет, но хотелось бы корректности в урлах, которые юзеры будут вводить на файл, поэтому решил проверять дополнительно кол. слешев до имени файла

а как насчет проверки имени файла? сейчас он не срабатывает если ру текст в названии и также с некоторыми символами на конце файла, нужно не обращать на это внимание, то как?

  Ответить  
 
 автор: Trianon   (06.12.2010 в 15:50)   письмо автору
 
   для: TetRiska   (06.12.2010 в 15:41)
 

как-то я слабо понял...
Если пользователь через форму файл отправляет - какая разница что за имя? Вы его все равно на серверной стороне формировать будете заново.
Если он URL стороннего документа указывает в поле ввода - какой вообще смысл в анализе ссылки?
ссылка с типом никак не связана.

  Ответить  
 
 автор: TetRiska   (06.12.2010 в 16:01)   письмо автору
 
   для: Trianon   (06.12.2010 в 15:50)
 

существует форма в которой есть текстовое поле, в него пользователь вводит ссылку на файл, под полем есть 3 радиобаттона, в котором он выберет тип файла который грузит (дополнительная переосторога, чтобы он выбрал верный файл с нужным типом), перед сохранением идет проверка того что ввел, на то что выбрал, вот нужна регулярка, которая бы верно проверила введенный урл с правильным указанием файла

  Ответить  
 
 автор: Trianon   (06.12.2010 в 16:05)   письмо автору
 
   для: TetRiska   (06.12.2010 в 16:01)
 

синтаксис URL с типом предоставляемого по ссыке документа вообще никак не связан.
К примеру URL файла типа MS Word совершенно не обязан оканчваться на .doc

  Ответить  
 
 автор: TetRiska   (06.12.2010 в 16:10)   письмо автору
 
   для: Trianon   (06.12.2010 в 16:05)
 

это понятно, но я урезал рамки именно так

мне всего лишь осталось проверить такое
1. чтобы перед названием файла был 1 слеш
2. чтобы название файла обязательно было, но не проверять его, т.е. не обращать внимание на текст в названии

  Ответить  
 
 автор: Trianon   (06.12.2010 в 16:17)   письмо автору
 
   для: TetRiska   (06.12.2010 в 16:10)
 

Видимо, непонятно объяснил.
Вот пример - http://tinyurl.com/dm20101206dm

  Ответить  
 
 автор: TetRiska   (06.12.2010 в 16:27)   письмо автору
 
   для: Trianon   (06.12.2010 в 16:17)
 

та все понятно :) просто я по началу думал делать вариант, чтобы прямые ссылки на файлы записывали, но тут Вы меня переубедили, не у всех такая возможность будет, спасибо

  Ответить  
 
 автор: Trianon   (06.12.2010 в 16:43)   письмо автору
 
   для: TetRiska   (06.12.2010 в 16:27)
 

а в остальном - parse_url()
но не переусердствуйте.
т.к. ссылками на документ могут оказаться
и http://site.com/1
и http://site.com?1

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования