После чтения Вашего разъяснения, @Ates ответ Goral обеспечивает, как выполнить ту же операцию, которую Вы делаете в C# в JavaScript.
ответ @Gumbo обеспечивает лучший способ проверить на пустой указатель; однако, важно отметить различие в ==
по сравнению с ===
в JavaScript особенно когда дело доходит до проблем проверки undefined
и/или null
.
существует действительно хорошая статья о различии в двух условиях здесь . В основном поймите, что, если Вы используете ==
вместо ===
, JavaScript попытается объединить значения, которые Вы сравниваете и возвращаете что результат сравнения после эта коалесценция.
gzfile () - удобный метод, который вызывает gzopen, gzread и gzclose.
Итак, да, вы можете вручную выполнить gzopen и gzread файл по частям.
Это распакует файл по фрагментам по 4 КБ:
function uncompress($srcName, $dstName) {
$sfp = gzopen($srcName, "rb");
$fp = fopen($dstName, "w");
while (!gzeof($sfp)) {
$string = gzread($sfp, 4096);
fwrite($fp, $string, strlen($string));
}
gzclose($sfp);
fclose($fp);
}
попытаться с
function uncompress($srcName, $dstName) {
$fp = fopen($dstName, "w");
fwrite($fp, implode("", gzfile($srcName)));
fclose($fp);
}
Параметр $ length является необязательным.
Если вы находитесь на хосте Linux, имеете необходимые привилегии для запуска команд и установлена команда gzip, вы можете попробовать вызвать ее с помощью чего-то вроде shell_exec
SOmething a примерно так, я полагаю, подойдет:
shell_exec('gzip -d your_file.gz');
Таким образом, файл не будет распакован PHP.
В качестве примечания:
escapeshellarg
; -)