Ayıklayın php ile bir dosya
Bir dosya açmak istiyorum ve bu gayet iyi çalışıyor
<?php
system('unzip File.zip');
?>
Ama URL ile dosya adı geçmek istiyorum ve bunu hemen, sahip olduğum tek şey bu.
<?php
$master = $_GET["master"];
system('unzip $master.zip');
?>
Neyi kaçırıyorum? Bakan olduğum şey küçük ve aptal olmak zorunda biliyorum.
Teşekkür ederim
CEVAP
Tek bir kod öğretici bir yerde çevrimiçi geldiği farz edebilir miyim? Bu durumda, iyi bir iş için çalışırken kendiniz çözün. Öte yandan, bu kod aslında online bir yerde bir dosya açmak için doğru yol olarak yayınlanabilir aslında biraz korkutucu.
PHP yerleşik sıkıştırılmış dosyaları ile başa çıkmak için uzantıları vardır. Bunun için system
aramalar kullanmaya gerek yok. *docs *7 bir seçenektir.
$zip = new ZipArchive;
$res = $zip->open('file.zip');
if ($res === TRUE) {
$zip->extractTo('/myzips/extract_path/');
$zip->close();
echo 'woot!';
} else {
echo 'doh!';
}
Diğerleri yorum olarak da,, $HTTP_GET_VARS
sürümü beri onaylanmaz uzun zaman önce bir reeeeeally olan 4.1 .... Sakın kullanma. $_GET
superglobal kullanın.
Son olarak, $_GET
bir değişken ile bir komut dosyası geçirilir ne olursa olsun kabul etme konusunda çok dikkatli olun.
HER ZAMAN KULLANICI GİRİŞİ STERİLİZE.
GÜNCELLEME
Yorum başı olarak, içinde bulunduğu aynı dizine zip dosyasını ayıklamak için en iyi yolu dosya için sabit yolu belirlemek ve bu konuma özellikle ayıklamak için. Yani, yapabilirsin:
// 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";
}
Zaten diskten silinmiş bir Git repo çı...
Can't jar - dosya çalıştırma: &qu...
Nasıl XML oluşturmak dinamik olarak PH...
Dosya 4.0 Express ile yükleme: ger.dos...
Raylar nasıl bir dosya upload test ede...