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

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

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

 

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

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

тема: Рег. выражение для поиска в HTML
 
 автор: icell   (01.11.2011 в 11:19)   письмо автору
 
 

Есть кусок кода, выглядящий так:

Content-Disposition: form-data; name="Filename"

ALCWZRD_04m.rar

Из него нужно извлечь имя файла (в данном случае ALCWZRD_04m.rar), причем файл может быть с любым именем и расширением. Интервал между строками стоит не случайно - он присутствует в коде. Помогите с выражением, чего-то не соображу, новичок я в этом.

  Ответить  
 
 автор: cheops   (01.11.2011 в 12:08)   письмо автору
 
   для: icell   (01.11.2011 в 11:19)
 

А после ALCWZRD_04m.rar что идет? Конец файла или есть какие-то другие строки?

  Ответить  
 
 автор: icell   (01.11.2011 в 12:10)   письмо автору
 
   для: cheops   (01.11.2011 в 12:08)
 

Строки есть и дальше:

Content-Disposition: form-data; name="Filename"

ALCWZRD_04m.rar
------------Ef1Ef1Ef1Ij5gL6KM7GI3Ij5Ef1cH2

  Ответить  
 
 автор: cheops   (01.11.2011 в 12:56)   письмо автору
 
   для: icell   (01.11.2011 в 12:10)
 

А в конце названия файла всегда есть перевод строки?

PS Это почтовое сообщение?

  Ответить  
 
 автор: icell   (01.11.2011 в 14:04)   письмо автору
 
   для: cheops   (01.11.2011 в 12:56)
 

Да, это почта. Насчет перевода строки в названии файла точно сказать не могу. Будем считать, что всегда.

  Ответить  
 
 автор: cheops   (01.11.2011 в 14:42)   письмо автору
 
   для: icell   (01.11.2011 в 14:04)
 

Можно начать отталкиваться от следующего скрипта
<?php
  $text 
'Content-Disposition: form-data; name="Filename"

 ALCWZRD_04m.rar
 ------------Ef1Ef1Ef1Ij5gL6KM7GI3Ij5Ef1cH2'
;
  
$pattern "|".preg_quote('Content-Disposition: form-data; name="Filename"')."[\s]+([^\s]+)[\s]+|is";
  
preg_match($pattern$text$out);
  echo 
$out[1];
?>

  Ответить  
 
 автор: icell   (01.11.2011 в 15:04)   письмо автору
 
   для: cheops   (01.11.2011 в 14:42)
 

О, получилось вот так:

Content-Disposition: form-data; name="Filename"\s+(\w+\.\w+)

Просто я ставил \s без плюса, вот и не находилось ничего. На скрипт взглянул и сразу понял.

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

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