|
|
|
| Есть кусок кода, выглядящий так:
Content-Disposition: form-data; name="Filename"
ALCWZRD_04m.rar
Из него нужно извлечь имя файла (в данном случае ALCWZRD_04m.rar), причем файл может быть с любым именем и расширением. Интервал между строками стоит не случайно - он присутствует в коде. Помогите с выражением, чего-то не соображу, новичок я в этом. | |
|
|
|
|
|
|
|
для: icell
(01.11.2011 в 11:19)
| | А после ALCWZRD_04m.rar что идет? Конец файла или есть какие-то другие строки? | |
|
|
|
|
|
|
|
для: cheops
(01.11.2011 в 12:08)
| | Строки есть и дальше:
Content-Disposition: form-data; name="Filename"
ALCWZRD_04m.rar
------------Ef1Ef1Ef1Ij5gL6KM7GI3Ij5Ef1cH2 | |
|
|
|
|
|
|
|
для: icell
(01.11.2011 в 12:10)
| | А в конце названия файла всегда есть перевод строки?
PS Это почтовое сообщение? | |
|
|
|
|
|
|
|
для: cheops
(01.11.2011 в 12:56)
| | Да, это почта. Насчет перевода строки в названии файла точно сказать не могу. Будем считать, что всегда. | |
|
|
|
|
|
|
|
для: 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];
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(01.11.2011 в 14:42)
| | О, получилось вот так:
Content-Disposition: form-data; name="Filename"\s+(\w+\.\w+)
Просто я ставил \s без плюса, вот и не находилось ничего. На скрипт взглянул и сразу понял. | |
|
|
|