में gzip के साथ बड़ी फ़ाइलों को अनपैक करें, मैं अपनी फ़ाइलों के लिए एक साधारण अनजिप फ़ंक्शन (जैसा कि नीचे देखा गया है) का उपयोग कर रहा हूं, इसलिए मुझे आगे संसाधित होने से पहले फ़ाइलों को अनजिप करने की आवश्यकता नहीं है।PHP
function uncompress($srcName, $dstName) {
$string = implode("", gzfile($srcName));
$fp = fopen($dstName, "w");
fwrite($fp, $string, strlen($string));
fclose($fp);
}
समस्या यह है कि अगर gzip फ़ाइल बड़ी है (उदाहरण के लिए 50MB) unzipping राम की एक बड़ी राशि की प्रक्रिया के लिए ले जाता है।
प्रश्न: क्या मैं भाग में एक gzipped फ़ाइल पार्स कर सकता हूं और अभी भी सही परिणाम प्राप्त कर सकता हूं? या क्या बड़ी gzip फ़ाइलों को निकालने के मुद्दे को संभालने का एक बेहतर तरीका है (भले ही इसमें कुछ सेकंड लगते हैं)?
मीठे! प्रक्रिया समय:: 12.1447s, पीक स्मृति उपयोग: से पहले - एक 1 एमबी gzip फ़ाइल कि 48MB को निकालता है पर परीक्षण किया गया 96512kB - अपने समाधान: प्रक्रिया समय: 0.6705s, पीक स्मृति उपयोग: 256KB धन्यवाद :) – Lukas
आप कर सकते हैं gzread कॉल के अंत में संख्या tweaking द्वारा बेहतर प्रदर्शन प्राप्त करें। मैंने हालांकि कोशिश नहीं की है। – Powerlord
20 गुना बेहतर अच्छा है, और बहुत लंबे समय तक पर्याप्त रहेगा। मुझे इस बात को और कोशिश करने के लिए बहुत ही बेताब या बड़ी फाइलों का उपयोग करना होगा :) – Lukas