SORU
17 Ocak 2012, Salı


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
17 Ocak 2012, Salı


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";
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BASS212M

    BASS212M

    15 Temmuz 2009
  • BurnedInDotCom

    BurnedInDotC

    3 NİSAN 2010
  • sinumatic

    sinumatic

    19 Aralık 2006