![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Новичок
![]() Пол:
Регистрация: 15.01.2010
Адрес: Украина
Сообщений: 18
Репутация: 0
|
Вот здесь http://otvety.google.ru/otvety/threa...b9d1f974&pli=1 задан вопрос о невозможности отдать файлы пользователю.
У меня такая же проблема, но код, который предоставлен не помогает. Помогите, пожалуйста. Вот мой участок кода: if(!file_exists($filename)) { echo("<br>Не могу открыть файл<br>Попробуйте использовать только латинские символы в имени файла.</td></tr></table></center></BODY></HTML>"); exit; } $fsize = filesize($filename); $fd = @fopen($filename, "rb"); if(!$fd) { echo("<br>Не могу открыть файл<br>Попробуйте использовать только латинские символы в имени файла.</td></tr></table></center></BODY></HTML>"); exit; } $content = fread($fd, $fsize); fclose($fd); $count = preg_match_all('/\x4d\x54\x68\x64\x5c\x30\x5c\x30\x5c\x30\x06/', $content, $matches); //На самом деле при просмотре через HexView32 такие данные: 4d 54 68 64 00 00 00 06 if($count<>1) { echo "<br>Файл не является Standard MIDI File Format 0 или Format 1</td></tr></table></center></BODY></HTML>"; exit; } В нем условие $preg_match_all выполняется, т.е. при заданом поиске комбинации $count равняется 1. Вот в такой вид он преобразовывает файл при отдаче пользователю, хотя на сервере файл нормальный. |
|
|
|
| Реклама: |
|
|
#2
|
|||||||||||||||||||||||
|
Постоялец
![]() ![]() ![]() ![]() ![]() Пол:
Регистрация: 25.03.2005
Сообщений: 789
Репутация: 788
|
Вы знакомы с этой функцией? Эта функция создает во первых массив. Во вторых '/\x4d\x54\x68\x64\x5c\x30\x5c\x30\x5c\x30\x06/', - это шаблон поиска $content - здесь место поиска $matches - сюда заносится результат ввиде массива $count = preg_match_all('/\x4d\x54\x68\x64\x5c\x30\x5c\x30\x5c\x30\x06/', $content, $matches); - идиотская запись соответсвует $count = $matches; и соответственно if($count<>1) - бессмыслено Наверное должно было быть так: $count = count(preg_match_all('/\x4d\x54\x68\x64\x5c\x30\x5c\x30\x5c\x30\x06/', $content, $matches)); - узнаем кол-во записей в массиве $matches Учите мат часть ![]() |
|||||||||||||||||||||||
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| При использовании mod_rewrite сервер отдает php-код | Searching | Настраиваем собственный хостинг | 3 | 14.10.2009 00:12 |
| Битые файлы. | Pelsinchik | Скорая помощь | 35 | 18.09.2009 17:14 |
| Закачиваются битые файлы | static | Скорая помощь | 6 | 23.07.2009 12:56 |
| Бинарные деревья | Разведчег | Базы данных | 0 | 15.06.2008 12:30 |
|
|