Старый 19.12.2007, 18:06   #1   
Йа Гений!
 
Сообщений: 1,293
Регистрация: 03.01.2007

grifon вне форума Не в сети
запись в php портит файл

пишу тут на php модуль торрентового обменника для движка.
В чем суть.
Открывается торрент-файл с сайта, вписываеться в его тело пасскей и отдается на скачивание клиенту.
торрен-файл выглядит так
Цитата:
d8:announce32:http://www.site.com/announce.php10:created by13:uTorrent/150013:creation datei1198018694e8:encoding5:UTF-84:infod6:lengthi551740e4:name7:icq.zip12:piece lengthi65536e6:pieces180:ºµX˪vƒ`©p«鳱`*M…6z†�“ҳI IRܾ£*Su и далее крюкозябры*
а проблема периодически проявляеться в том, что во время открывания файла убиваются несколько символов из крюкозябров в самом конце файла. Причем в одном торрент-файле они могут не убиваться никогда и файл отдается-запускаеться нормально, а в другом - всегда несколько знаков с конца пропадают.
Причем просто открытия файла file_get_contents достаточно для убивания.
  Ответить с цитированием
Старый 19.12.2007, 20:12   #2   
Mоdеrаtоr
 
Аватар для DeniSS1
 
Сообщений: 1,660
Регистрация: 09.10.2007
Возраст: 31

DeniSS1 вне форума Не в сети
grifon, в php я ни бум-бум, но, может, превышена предельная длина имени?
  Ответить с цитированием
Старый 19.12.2007, 23:18   #3   
Registered User
 
Аватар для netwind
 
Сообщений: 1,905
Регистрация: 25.03.2003

netwind вне форума Не в сети
быть такого не может. а вот неаккуратное использование строковых функций(например в регулярных выражениях забыть про модификатор /s при работе с двоичными данными) и неочевидные ошибки в результате, какой-нибудь перекодирующий веб-сервер, это запросто.
на всякий случай попробуйте указать при открытии файла бинарный режим (флажек 'b' в fopen). ну и вычленить независимый тестовый кусок кода и на нескольких разных хостингах погонять.
  Ответить с цитированием
Старый 20.12.2007, 09:56   #4   
асинхроник
 
Аватар для AIM-9M
 
Сообщений: 976
Регистрация: 15.10.2004
Возраст: 40
Записей в дневнике: 3

AIM-9M вне форума Не в сети
Код покажи, что ли...
  Ответить с цитированием
Старый 20.12.2007, 11:32   #5   
Йа Гений!
 
Сообщений: 1,293
Регистрация: 03.01.2007

grifon вне форума Не в сети
Нашел. Гадости делала последняя строка
Цитата:
header('Content-Length: ' . strlen($output));
в выдаче файла после правки почему-то неверно подсчитывала размер.
Пока закомментировал ее.
  Ответить с цитированием
Старый 20.12.2007, 12:01   #6   
Registered User
 
Аватар для netwind
 
Сообщений: 1,905
Регистрация: 25.03.2003

netwind вне форума Не в сети
А какой версии у вас PHP и на какой платформе?
  Ответить с цитированием
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind