दिलचस्प पोस्ट
नेटबींस के साथ निर्यात जार प्रिंट सीएसएस की स्थापना के लिए अच्छे नियम हैं? पायथन में, लिनक्स में 'यूएसबी डिवाइस डाले गए' घटनाओं के लिए मैं कैसे सुन सकता हूँ? मैं जावास्क्रिप्ट में एक नियमित अभिव्यक्ति के लिए सभी मैचों को कैसे प्राप्त करूं? ऐप हमेशा पृष्ठभूमि राज्य (ज्ञात बग) को चालू करने के बजाय रूट गतिविधि से ताज़ा शुरू होता है गिट त्रुटि: रिमोट रिपॉजिटरी से कनेक्ट करते समय "मेजबान कुंजी सत्यापन विफल" ब्राउज़र को फाइल डाउनलोड करने के लिए मजबूर कैसे करें? और ? UIWebViewDelegate निगरानी नहीं XMLHttpRequest? jQuery: कैसे मक्खी पर खिड़की चौड़ाई का पता लगाने के लिए? क्या पायथन स्ट्रिंग प्राकृतिक सॉर्ट के लिए फ़ंक्शन निर्मित है? कक्षा android.support.v7.widget.Toolbar बढ़ती त्रुटि? कैसे एक सफेद अंतरिक्ष के साथ कई सफेद रिक्त स्थान की जगह भेजे गए एसएमएस संदेशों के लिए एंड्रॉइड ब्रॉडकास्ट रिसीवर? टुकड़ा और एडाप्टर के बीच अंतरफलक कैसे बनाऊँ?

Php के साथ एक फाइल खोलना

मैं एक फ़ाइल खोलना चाहता हूँ और यह ठीक काम करता है

system('unzip File.zip'); 

लेकिन मुझे यूआरएल के माध्यम से फ़ाइल नाम देना होगा और इसे काम करने के लिए नहीं मिल सकता है, यह मेरे पास है।

 $master = $_GET["master"]; system('unzip $master.zip'); 

मैं क्या खो रहा हूँ? मुझे पता है कि यह कुछ छोटा और बेवकूफ होना चाहिए जो मैं अनदेखी कर रहा हूं।

धन्यवाद,

वेब के समाधान से एकत्रित समाधान "Php के साथ एक फाइल खोलना"

मैं केवल मान सकता हूँ कि आपका कोड कहीं से एक ट्यूटोरियल से आया है? उस स्थिति में, अच्छा काम यह समझने की कोशिश कर रहा है। दूसरी ओर, तथ्य यह है कि इस कोड को वास्तव में ऑनलाइन प्रकाशित किया जा सकता है कहीं एक फ़ाइल खोलना सही तरीके से थोड़ा भयावह है।

संपीड़ित फ़ाइलों से निपटने के लिए PHP ने अंतर्निहित विस्तार किया है इसके लिए system कॉल का उपयोग करने की कोई आवश्यकता नहीं होनी चाहिए। ZipArchive डॉक्स एक विकल्प है।

 $zip = new ZipArchive; $res = $zip->open('file.zip'); if ($res === TRUE) { $zip->extractTo('/myzips/extract_path/'); $zip->close(); echo 'woot!'; } else { echo 'doh!'; } 

साथ ही, जैसा कि अन्य लोगों ने टिप्पणी की है, $HTTP_GET_VARS को संस्करण 4.1 के बाद से पदावनत किया गया है … जो एक लंबे समय से पहले था। इसका उपयोग न करें इसके बजाय $_GET सुपरग्लोबल का उपयोग करें

अंत में, $_GET वैरिएबल के माध्यम से स्क्रिप्ट को जो भी इनपुट दिया जाता है उसे स्वीकार करने के बारे में बहुत सावधान रहें

हमेशा संवेदी उपयोगकर्ता इनपुट


अद्यतन करें

अपनी टिप्पणी के अनुसार, उसी फ़ाइल में ज़िप फ़ाइल को निकालने का सबसे अच्छा तरीका जिसमें वह रहता है, फ़ाइल के हार्ड पथ को निर्धारित करने और विशेष रूप से उस स्थान पर निकालने के लिए है। तो, आप ऐसा कर सकते हैं:

 // assuming file.zip is in the same directory as the executing script. $file = 'file.zip'; // get the absolute path to $file $path = pathinfo(realpath($file), PATHINFO_DIRNAME); $zip = new ZipArchive; $res = $zip->open($file); if ($res === TRUE) { // extract it to the path we determined above $zip->extractTo($path); $zip->close(); echo "WOOT! $file extracted to $path"; } else { echo "Doh! I couldn't open $file"; } 

कृपया, ऐसा मत करो (GET var को एक सिस्टम कॉल का हिस्सा होने के लिए)। इसके बजाय ज़िपअर्किव का उपयोग करें

तो, आपका कोड ऐसा दिखना चाहिए:

 $zipArchive = new ZipArchive(); $result = $zipArchive->open($_GET["master"]); if ($result === TRUE) { $zipArchive ->extractTo("my_dir"); $zipArchive ->close(); // Do something else on success } else { // Do something on error } 

और अपने प्रश्न का उत्तर देने के लिए, आपकी त्रुटि 'कुछ $ var कुछ और' है "कुछ $ var कुछ और" (डबल कोट्स में) होना चाहिए।

बस अपनी कोशिश करो इसे नष्ट करने के लिए गंतव्य को निकालने या रूट को हटाने के लिए अपने डीस्टाइनडायर को निकालने के लिए गंतव्य है।

 $master = 'someDir/zipFileName'; $data = system('unzip -d yourDestinationDir '.$master.'.zip'); 

मैंने @rdlowrey का एक क्लीनर और बेहतर कोड के लिए अपडेट किया, यह एक फ़ाइल को वर्तमान निर्देशिका में __DIR__ का उपयोग करके __DIR__

 <?php // config // ------------------------------- // only file name + .zip $zip_filename = "YOURFILENAME.zip"; ?> <!DOCTYPE html> <html> <head> <meta charset='utf-8' > <title>Unzip</title> <style> body{ font-family: arial, sans-serif; word-wrap: break-word; } .wrapper{ padding:20px; line-height: 1.5; font-size: 1rem; } span{ font-family: 'Consolas', 'courier new', monospace; background: #eee; padding:2px; } </style> </head> <body> <div class="wrapper"> <?php echo "Unzipping <span>" .__DIR__. "/" .$zip_filename. "</span> to <span>" .__DIR__. "</span><br>"; echo "current dir: <span>" . __DIR__ . "</span><br>"; $zip = new ZipArchive; $res = $zip->open(__DIR__ . '/' .$zip_filename); if ($res === TRUE) { $zip->extractTo(__DIR__); $zip->close(); echo '<p style="color:#00C324;">Extract was successful! Enjoy ;)</p><br>'; } else { echo '<p style="color:red;">Zip file not found!</p><br>'; } ?> End Script. </div> </body> </html> 

मैंने Morteza Ziaeemehr का एक क्लीनर और बेहतर कोड के उत्तर में अपडेट किया है, यह डीआईआर का उपयोग करके वर्तमान निर्देशिका में फ़ॉर्म के भीतर प्रदान की गई फ़ाइल को अनझिप करेगा।

 <!DOCTYPE html> <html> <head> <meta charset='utf-8' > <title>Unzip</title> <style> body{ font-family: arial, sans-serif; word-wrap: break-word; } .wrapper{ padding:20px; line-height: 1.5; font-size: 1rem; } span{ font-family: 'Consolas', 'courier new', monospace; background: #eee; padding:2px; } </style> </head> <body> <div class="wrapper"> <?php if(isset($_GET['page'])) { $type = $_GET['page']; global $con; switch($type) { case 'unzip': { $zip_filename =$_POST['filename']; echo "Unzipping <span>" .__DIR__. "/" .$zip_filename. "</span> to <span>" .__DIR__. "</span><br>"; echo "current dir: <span>" . __DIR__ . "</span><br>"; $zip = new ZipArchive; $res = $zip->open(__DIR__ . '/' .$zip_filename); if ($res === TRUE) { $zip->extractTo(__DIR__); $zip->close(); echo '<p style="color:#00C324;">Extract was successful! Enjoy ;)</p><br>'; } else { echo '<p style="color:red;">Zip file not found!</p><br>'; } break; } } } ?> End Script. </div> <form name="unzip" id="unzip" role="form"> <div class="body bg-gray"> <div class="form-group"> <input type="text" name="filename" class="form-control" placeholder="File Name (with extension)"/> </div> </div> </form> <script type="application/javascript"> $("#unzip").submit(function(event) { event.preventDefault(); var url = "function.php?page=unzip"; // the script where you handle the form input. $.ajax({ type: "POST", url: url, dataType:"json", data: $("#unzip").serialize(), // serializes the form's elements. success: function(data) { alert(data.msg); // show response from the php script. document.getElementById("unzip").reset(); } }); return false; // avoid to execute the actual submit of the form }); </script> </body> </html> 

बस बदल दो

 system('unzip $master.zip'); 

यह एक के लिए

 system('unzip ' . $master . '.zip'); 

या यह एक

system("unzip {$master}.zip");

आप प्रीपेड फ़ंक्शन का उपयोग कर सकते हैं

 function unzip_file($file, $destination){ // create object $zip = new ZipArchive() ; // open archive if ($zip->open($file) !== TRUE) { return false; } // extract contents to destination directory $zip->extractTo($destination); // close archive $zip->close(); return true; } 

इसका इस्तेमाल कैसे करें।

 if(unzip_file($file["name"],'uploads/')){ echo 'zip archive extracted successfully'; }else{ echo 'zip archive extraction failed'; } 
 function extract_zip($Sourse_file, $extract_folder){ $zip = new ZipArchive() ; if (!$zip->open($Sourse_file) == TRUE) { return false; } $zip->extractTo($extract_folder); $zip->close(); return true; } 

यूआरएल परम "नाम" में फ़ाइल नाम के साथ, PHP कोड के नीचे का प्रयोग करें

 <?php $fileName = $_GET['name']; if (isset($fileName)) { $zip = new ZipArchive; $res = $zip->open($fileName); if ($res === TRUE) { $zip->extractTo('./'); $zip->close(); echo 'Extracted file "'.$fileName.'"'; } else { echo 'Cannot find the file name "'.$fileName.'" (the file name should include extension (.zip, ...))'; } } else { echo 'Please set file name in the "name" param'; } ?> 

PHP में अपनी स्वयं की इनबिल्ट क्लास है, जिसका उपयोग ज़िप फ़ाइल से सामग्री को अनझिप या निकाले जाने के लिए किया जा सकता है। क्लास ज़िपराचिव है नीचे एक सरल और मूल PHP कोड है जो एक ज़िप फ़ाइल को निकालेगा और उसे एक विशिष्ट निर्देशिका में रखेगा:

 <?php $zip_obj = new ZipArchive; $zip_obj->open('dummy.zip'); $zip_obj->extractTo('directory_name/sub_dir'); ?> 

यदि आप कुछ उन्नत सुविधाएं चाहते हैं तो नीचे दिया गया सुधार कोड है जो यह जांच करेगा कि ज़िप फ़ाइल मौजूद है या नहीं:

 <?php $zip_obj = new ZipArchive; if ($zip_obj->open('dummy.zip') === TRUE) { $zip_obj->extractTo('directory/sub_dir'); echo "Zip exists and successfully extracted"; } else { echo "This zip file does not exists"; } ?> 

स्रोत: कैसे PHP में ज़िप फ़ाइलों को खोलना या निकालें?

बस इसका उपयोग करें:

  $master = $_GET["master"]; system('unzip' $master.'.zip'); 

आपके कोड $master में स्ट्रिंग के रूप में पारित किया जाता है, सिस्टम $master.zip नामक एक फ़ाइल की तलाश करेगा

  $master = $_GET["master"]; system('unzip $master.zip'); `enter code here`