İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Web Programlama (PHP, ASP, HTML, CSS, JavaScript)
Web Programlama (PHP, ASP, HTML, CSS, JavaScript)

dizi kullanımı

Gecekule29.12.20160 cevap636 görüntüleme
2015'den beri39 mesaj
#1
Merhaba,

Aşağıdaki kod sorunsuz çalışıyor
Bu kod ile hem .sql hemde .gz uzantılı dosyaların içini okuyorum burada sorun yok
        function uzanti($text)  {
        $text = strtolower(pathinfo($text, PATHINFO_EXTENSION));
        return $text; 
        }
        $dosyatipi = uzanti($_POST['sqlsec']);
    if($dosyatipi=='gz'){
    @$lines = gzfile($_POST['sqlsec']);
    }else{
    @$lines = file(''.$_POST['sqlsec'].'');
    }       

  @$database = 'Veritabanı: `';   // Veritabanı adı için yedek içinde aranacak kelime
  @$search = 'TABLO_ADI ';       // Tablo adı ve satır sayısı için yedek içinde aranacak kelime
  @$completed = 'COMPLETED SUCCESSFULLY'; // Başarılı yedeklendiğini göstermek için aranacak kelime
  $found = false;
  $bulundu = false;
 
  if(!empty($lines)){  // Okunacak dosya var mı?
    foreach($lines as $line){ // Dosya satır satır okunuyor

  if(strpos($line, $database) !== false){ // Yedek içinde veritabanı adını alıyoruz
   $raw_data = explode("\n", $line);
   $dat = explode("`", $raw_data[0]);
                   array_pop($dat);
   $databasename = array_pop($dat);
  if($databasename != $db_name){ // Karşılaştırılacak veritabanı aynı değil ise döngüyü durdur
  break;
  }     
  }
    
  if(strpos($line, $search) !== false){  // Yedek içinden tablo adlarını alıyoruz
    
   $found = true;
   $rawdata = explode("\n", $line);
   $data = explode(" ", $rawdata[0]);
   $veri = explode(" ", $rawdata[0]);
   $verisatir = trim(array_pop($veri));
                trim(array_pop($data));
   $tablename = trim(array_pop($data));
  
   $yedektablo[$tablename] = $verisatir;   
  
   }
  
  if(strpos($line, $completed) !== false){ // Yedek içinde sonuna eklediğimiz başarıyla yedeklendi kelimeyi aliyoruz
   $bulundu = true; 
  }
    
  } // foreach($lines as $line){
 } // if(!empty($lines)){

Yukarıdaki kod ile $files = 'klasor/veritabani.sql'; veya $files = 'klasor/veritabani.gz'; bu şekilde çalışıyor sorun yok

Sorum şu:
Dosyaları dizi olarak vermek istiyorum ama yapamadım
Yardımcı olabilir misiniz?
$files = array("tablo1.sql", "tablo2.sql", "tablo3.sql", "tablo4.sql");
VEYA
$files = array("tablo1.gz", "tablo2.gz", "tablo3.gz", "tablo4.gz");

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.