пишу тут на 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 достаточно для убивания.
[Ответ]
grifon, в php я ни бум-бум, но, может, превышена предельная длина имени?
[Ответ]
быть такого не может. а вот неаккуратное использование строковых функций(например в регулярных выражениях забыть про модификатор /s при работе с двоичными данными) и неочевидные ошибки в результате, какой-нибудь перекодирующий веб-сервер, это запросто.
на всякий случай попробуйте указать при открытии файла бинарный режим (флажек 'b' в fopen). ну и вычленить независимый тестовый кусок кода и на нескольких разных хостингах погонять.
[Ответ]
Нашел. Гадости делала последняя строка
Сообщение от :
header('Content-Length: ' . strlen($output));
в выдаче файла после правки почему-то неверно подсчитывала размер.
Пока закомментировал ее.
[Ответ]