मैं PHP का उपयोग कर अपने सर्वर पर एक फ़ाइल को संकुचित करना चाहता हूं। क्या किसी के पास ऐसा उदाहरण है जो फ़ाइल को इनपुट करेगा और संपीड़ित फ़ाइल आउटपुट करेगा?PHP का उपयोग करके आप .gz फ़ाइल कैसे बनाते हैं?
उत्तर
अन्य उत्तरों यहां संपीड़न के दौरान पूरी फ़ाइल को स्मृति में लोड करते हैं, जिससे 'मेमोरी' बड़ी फ़ाइलों पर त्रुटियों का कारण बन जाएगा। नीचे दिए गए फ़ंक्शन को बड़ी फ़ाइलों पर अधिक विश्वसनीय होना चाहिए क्योंकि यह 512 केबी भाग में फ़ाइलों को पढ़ता है और लिखता है। gzencode() साथ
/**
* GZIPs a file on disk (appending .gz to the name)
*
* From http://stackoverflow.com/questions/6073397/how-do-you-create-a-gz-file-using-php
* Based on function by Kioob at:
* http://www.php.net/manual/en/function.gzwrite.php#34955
*
* @param string $source Path to file that should be compressed
* @param integer $level GZIP compression level (default: 9)
* @return string New filename (with .gz appended) if success, or false if operation fails
*/
function gzCompressFile($source, $level = 9){
$dest = $source . '.gz';
$mode = 'wb' . $level;
$error = false;
if ($fp_out = gzopen($dest, $mode)) {
if ($fp_in = fopen($source,'rb')) {
while (!feof($fp_in))
gzwrite($fp_out, fread($fp_in, 1024 * 512));
fclose($fp_in);
} else {
$error = true;
}
gzclose($fp_out);
} else {
$error = true;
}
if ($error)
return false;
else
return $dest;
}
इस कोड चाल
// Name of the file we're compressing
$file = "test.txt";
// Name of the gz file we're creating
$gzfile = "test.gz";
// Open the gz file (w9 is the highest compression)
$fp = gzopen ($gzfile, 'w9');
// Compress the file
gzwrite ($fp, file_get_contents($file));
// Close the gz file and we're done
gzclose($fp);
:-) –
अपने खुद के सवाल का जवाब देने दुर्भाग्य से यह शायद स्मृति में पूरी फ़ाइल, संभवतः बड़ी फ़ाइलों पर पीएचपी की स्मृति सीमा तक पहुंच गए पढ़ा जाएगा के लिए +1। :-( –
जबकि w9 उच्चतम संपीड़न है? जो सबसे कम संपीड़न है, केवल .gz में डेटा पैक करने के लिए? – AMB
भी करता है, आप के लिए php के wrappers, compression ones इस्तेमाल कर सकते हैं। कोड में न्यूनतम परिवर्तन के साथ आप gzip, bzip2 या ज़िप के बीच स्विच करने में सक्षम होंगे।
$input = "test.txt";
$output = $input.".gz";
file_put_contents("compress.zlib://$output", file_get_contents($input));
compress.zlib://
ज़िप संपीड़न
के लिए compress.zip://
करने के लिए परिवर्तन (देखें ज़िप संपीड़न के बारे में इस सवाल का जवाब करने के लिए टिप्पणी), या compress.bzip2://
को bzip2 संपीड़न के।
मुझे लगता है कि 'compress.zip: //' संपीड़न के लिए समर्थित नहीं है। Http: // www पर नोट देखें। php.net/manual/en/wrappers.compression.php – Alex
@ एलेक्स हां, ऐसा लगता है कि आप सही हैं, और ज़िप: // रैपर लेखन का समर्थन नहीं करता है और न ही पहले से मौजूद फाइल –
सरल एक लाइनर:
gzencode(file_get_contents($file_name));
तुम सिर्फ एक फ़ाइल अनज़िप करने, इस काम करता है और स्मृति के साथ मुद्दों का कारण नहीं है देख रहे हैं:
$bytes = file_put_contents($destination, gzopen($gzip_path, r));
यह शायद है कई लोगों के लिए स्पष्ट है, लेकिन यदि आपके सिस्टम पर कोई भी प्रोग्राम निष्पादन फ़ंक्शन सक्षम है (exec
, system
, shell_exec
), तो आप उन्हें सिम्प के लिए उपयोग कर सकते हैं ly gzip
फ़ाइल।
exec("gzip ".$filename);
निष्पादन सबसे अधिक लॉक हो गया है होस्टिंग प्लेटफ़ॉर्म और सामान्य रूप से एक सुरक्षा जोखिम है जो कि – Wranorn
@Wranorn का उपयोग करने के लिए भी है, इसलिए मैंने संकेत दिया "यदि कोई प्रोग्राम निष्पादन कार्य ई है आपके सिस्टम पर सक्षम, "क्या मुझे आपके होस्टिंग प्लेटफ़ॉर्म पर" लिखा जाना चाहिए? सुरक्षा के लिए, यदि आप इस फ़ंक्शन में उपयोगकर्ता इनपुट पास नहीं करते हैं, तो मुझे यकीन नहीं है कि जोखिम क्या है। [PHP दस्तावेज़] (http://php.net/manual/en/function.exec.php) में केवल चेतावनियां उपयोगकर्ता द्वारा प्रदत्त डेटा को पास करते समय 'escapeshellarg()' या 'escapeshellcmd()' का उपयोग करने के बारे में हैं समारोह। – Niavlys
- 1. आप php में वैकल्पिक तर्क कैसे बनाते हैं?
- 2. आप mongoose का उपयोग करके एक कैप्ड संग्रह कैसे बनाते हैं?
- 3. स्टोरीबोर्ड का उपयोग करके आप एक बहुत लंबा स्टेटिक टेबल व्यू कैसे बनाते हैं?
- 4. ट्विस्टेड शब्द पायथन लाइब्रेरी का उपयोग करके आप एक सरल Google टॉक क्लाइंट कैसे बनाते हैं?
- 5. आप PHP में एक आरईएसटी एपीआई कैसे बनाते हैं?
- 6. आप जावास्क्रिप्ट में कक्षाएं कैसे बनाते हैं?
- 7. आप एक धार फ़ाइल सूचकांक कैसे बनाते हैं?
- 8. PHP का उपयोग कर एफपीडीएफ के साथ आप इस तरह की टेबल कैसे बनाते हैं?
- 9. PHP Untar-gz निष्पादन के बिना()?
- 10. आप शेफ संसाधन वैकल्पिक कैसे बनाते हैं?
- 11. आप एक असेंबलर कैसे बनाते हैं?
- 12. आप जावा के साथ वेबसाइट कैसे बनाते हैं?
- 13. आप रेटिंग कार्यान्वयन कैसे बनाते हैं?
- 14. आप मूस में उपप्रकार कैसे बनाते हैं?
- 15. आप पर्ल में ऑब्जेक्ट्स कैसे बनाते हैं?
- 16. आप कैलियर की प्रतिलिपि कैसे बनाते हैं?
- 17. आप cout का उपयोग करके \ प्रतीक कैसे आउटपुट करते हैं?
- 18. SASS का उपयोग करके आप मीडिया क्वेरी कैसे करते हैं?
- 19. आप लिनक्स जीयूआई कैसे बनाते हैं?
- 20. आप UIBarButtonItem एनीमेशन फ्लिप कैसे बनाते हैं?
- 21. PHP: वाइल्डकार्ड का उपयोग करके फ़ाइल को कैसे खोजें
- 22. आप एक छवि झपकी कैसे बनाते हैं?
- 23. आप जावा में शब्दकोश कैसे बनाते हैं?
- 24. आप डब्ल्यूसीएफ टेस्ट पेज कैसे बनाते हैं?
- 25. आप div "tabbable" कैसे बनाते हैं?
- 26. MySQL आप क्लस्टर्ड इंडेक्स कैसे बनाते हैं?
- 27. आप भाषा बाइंडिंग कैसे बनाते हैं?
- 28. PHP का उपयोग करके तैनाती के दौरान आप लाइब्रेरी निर्भरताओं को कैसे प्रबंधित करते हैं?
- 29. PHP का उपयोग करके मोंगोइड के स्ट्रिंग मान को आप कैसे प्राप्त करते हैं?
- 30. PHP हेडर() फ़ंक्शन का उपयोग करके आप किसी पृष्ठ पर कैसे पोस्ट करते हैं?
परफेक्ट करने के लिए बिल्कुल सही है! बस मुझे जो चाहिए था। – Clox
आप सबसे अच्छे हैं! – Fuser97381
कोड का बहुत अच्छा हिस्सा। मैंने उपरोक्त लिया और फ़ाइल को डीकंप्रेस करने के लिए रिवर्स बनाया। कोड काफी तेज़ है। – user3759531