serg_small_developer
@serg_small_developer
Начинающий прогер

Как декодировать файл?

Всем привет. Проблема вот какая, есть у меня сжатые файлики от одной проги, текст который в этих файлах сжимают этой функцией - gzencode, а распаковку делают этой
public function get_post_content($id, $i)  {
    $file = D_SQLITE_DB_DIR."/$i/$id";
    if(file_exists($file) && $handle = fopen($file, 'a+'))    {
      if(flock($handle, LOCK_EX))      {
        clearstatcache();
        $filesize = filesize($file);
        $content = $filesize == 0 ? '' :
        gzinflate(substr(fread($handle, $filesize), 10, -8));
        flock($handle, LOCK_UN);
      }
      else $content = '';
      fclose($handle);
    }
    else $content = '';
    return $content;

на сервере под centos7 и ngix где лежит сайт все работает, но если проделать подобное на другом сервере где апач и debian то функция которая декодирует сжатый файл не работает, просто отдает пустоту, подскажите в чем может быть проблема и что я делаю не так?,
думал что это может быть из-за того что на сервере не установлен gzip, но проверил понял что все есть, а декодирование все равно не работает(
Вот примеры файликов
  • Вопрос задан
  • 949 просмотров
Решения вопроса 1
@DimkaI
Системный адинистратор, разработчик ПО
У вас в программе всё описано.
При отсутствии прав доступа вернуть пустой контент.
При отсутствии файла - вернуть пустой контент
При нулевой длине - вернуть пустой контент
При невозможности дописывать - вернуть пустой контент

Либо файл лежит не там, где вы предполагаете, либо файл не может читать и записывать пользователь www-data, либо всё остальное.
начните с отладки - хотя бы в лог запишите какое из условий сработало, чтобы понять в чём проблема.

ЗЫ. Если чей-либо ответ Вам помог, отметьте его. Помогающим это стимул и дальше помогать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Perfect Systems Москва
от 300 000 ₽
Perfect Systems Москва
от 150 000 до 300 000 ₽
IT MEGASTAR Новосибирск
от 80 000 до 180 000 ₽