Ситуация довольно проста:
PHP 5.3.2 используется в качестве посредника для обработки (обфусцирования) некоторых статических файлов на сервере. Этот процесс уже давно (1-2 года). Недавно (последние несколько дней) у некоторых файлов были усечены / неправильно сформированы маркеры EOF. Эти файлы сами не менялись в некоторых случаях более года или 2, а также.
Что я пробовал:
readfile()
,
file_get_contents
,
а также
fopen(), fread(), fclose()
процессы
Файлы на сервере при прямой ссылке загружаются без обработки PHP и их EOF (в частности, %%EOF
) поддерживается.
Однако после того, как PHP обработает их и отправит клиенту, %%EOF
становится %%E
и файл считается поврежденным приложением, принадлежащим им. Потерянный остаток является частью фрагмента 4096 (обычно около 3,1 КБ)
для меня это говорит о том, что поток преждевременно завершается, а оставшиеся байты никогда не выходят из буфера — однако все, что я пробовал, все равно кажется, что это не входит в конец файла.
некоторая информация об окружающей среде:
Файлы имеют формат UTF-8, PHP ini имеет кодировку по умолчанию, установленную на UTF-8, php обнаруживает кодировку файла utf-8 во время обработки, размер фрагмента потока не изменился (4096), gzip через IIS, а не модуль PHP.
Не все файлы, полученные с помощью этого процесса, страдают от этой ошибки. Проверка размера файла, размера, даты создания и т. Д. Между сбойными файлами нет никакой реальной общности. Также нет различимой характеристики между файлами, которые передаются, и файлами, которые повреждены
заранее спасибо
Задача ещё не решена.
Других решений пока нет …