• 20-02-2023, 08:36:53
    #1
    Elimde bir zip dosyasi var, bu dosyası indirtme islemi yapiyorum zipi disari cikarttigimda zipden cikan dosyalar ile mevcut indirilen konumda ayni dosya varsa cikarilan dosyanin mevcut dosya ile degismesini istiyorum bu konuda bilgi verecek arkadas varmi acaba
  • 20-02-2023, 11:39:47
    #2
    // Zip dosyasının adı
    $zipFileName = 'dosyalarim.zip';
    
    // Zip dosyasını açmak için ZipArchive sınıfını kullanıyoruz
    $zip = new ZipArchive;
    
    if ($zip->open($zipFileName) === TRUE) {
        // Zip dosyasını aç
        $zip->extractTo('./'); // Dosyaları mevcut dizine çıkart
        $zip->close();
    
        // Çıkartılan dosyaların isimlerini al
        $extractedFiles = scandir('./');
    
        // Her bir dosya için kontrol yap
        foreach($extractedFiles as $extractedFile) {
            if(is_file($extractedFile)) {
                $destinationFile = './' . $extractedFile;
                $sourceFile = './indirilen_dosyalar/' . $extractedFile;
                if(file_exists($sourceFile)) {
                    // Eğer aynı isimde bir dosya varsa, üzerine yaz
                    copy($destinationFile, $sourceFile);
                } else {
                    // Aynı isimde bir dosya yoksa, dosyayı indirilen dosya klasörüne taşı
                    rename($destinationFile, $sourceFile);
                }
            }
        }
    
        echo 'Dosyalar başarıyla çıkartıldı ve kopyalandı!';
    } else {
        echo 'Zip dosyası açılamadı!';
    }
    Bu kod, öncelikle ZIP dosyasını açar ve dosyaları mevcut dizine çıkartır. Daha sonra, her bir dosya için kontrol yapar ve dosyanın indirilen konumda aynı isimde bir dosya olup olmadığını kontrol eder. Eğer aynı isimde bir dosya varsa, cikarilan dosya ile mevcut dosya arasındaki farklılıkları ortadan kaldırmak için mevcut dosyanın üzerine yazar. Eğer aynı isimde bir dosya yoksa, dosyayı indirilen dosya klasörüne taşır. Son olarak, işlemin başarılı olduğunu bildiren bir mesaj yazdırır.
  • 20-02-2023, 14:30:50
    #3
    Hocam cook makbule gecti mantigi bile yeterliydi ama bu zamanda baya tasarruf ettirecek beni 🙏🙏
  • 20-02-2023, 19:13:16
    #4
    ardakarakas adlı üyeden alıntı: mesajı görüntüle
    // Zip dosyasının adı
    $zipFileName = 'dosyalarim.zip';
    
    // Zip dosyasını açmak için ZipArchive sınıfını kullanıyoruz
    $zip = new ZipArchive;
    
    if ($zip->open($zipFileName) === TRUE) {
        // Zip dosyasını aç
        $zip->extractTo('./'); // Dosyaları mevcut dizine çıkart
        $zip->close();
    
        // Çıkartılan dosyaların isimlerini al
        $extractedFiles = scandir('./');
    
        // Her bir dosya için kontrol yap
        foreach($extractedFiles as $extractedFile) {
            if(is_file($extractedFile)) {
                $destinationFile = './' . $extractedFile;
                $sourceFile = './indirilen_dosyalar/' . $extractedFile;
                if(file_exists($sourceFile)) {
                    // Eğer aynı isimde bir dosya varsa, üzerine yaz
                    copy($destinationFile, $sourceFile);
                } else {
                    // Aynı isimde bir dosya yoksa, dosyayı indirilen dosya klasörüne taşı
                    rename($destinationFile, $sourceFile);
                }
            }
        }
    
        echo 'Dosyalar başarıyla çıkartıldı ve kopyalandı!';
    } else {
        echo 'Zip dosyası açılamadı!';
    }
    Bu kod, öncelikle ZIP dosyasını açar ve dosyaları mevcut dizine çıkartır. Daha sonra, her bir dosya için kontrol yapar ve dosyanın indirilen konumda aynı isimde bir dosya olup olmadığını kontrol eder. Eğer aynı isimde bir dosya varsa, cikarilan dosya ile mevcut dosya arasındaki farklılıkları ortadan kaldırmak için mevcut dosyanın üzerine yazar. Eğer aynı isimde bir dosya yoksa, dosyayı indirilen dosya klasörüne taşır. Son olarak, işlemin başarılı olduğunu bildiren bir mesaj yazdırır.

    Hocam makulse güncellemek amacıyla kullanılan sunucuya dosya indirme işlemi hakkındada bilgi verme şansınız var mı?
  • 20-02-2023, 19:36:49
    #5
    sheeflamarck adlı üyeden alıntı: mesajı görüntüle
    Hocam makulse güncellemek amacıyla kullanılan sunucuya dosya indirme işlemi hakkındada bilgi verme şansınız var mı?
    PHP ile sunucudan dosya indirmeyi mi kastediyorsunuz ?
  • 20-02-2023, 20:02:09
    #6
    ardakarakas adlı üyeden alıntı: mesajı görüntüle
    PHP ile sunucudan dosya indirmeyi mi kastediyorsunuz ?
    hocam aslinda dosya guncellemesi olarak kullanilacak yani bir baska sunucudan hedef sunucuya diger kontroller bittide suan tek o kaldi
  • 20-02-2023, 22:59:08
    #7
    ardakarakas adlı üyeden alıntı: mesajı görüntüle
    PHP ile sunucudan dosya indirmeyi mi kastediyorsunuz ?
             $path = $row['licanceFileUpdate_file'];
                                $fp = fopen($path, 'w');
                                
                                $file=fopen($row['licanceFileUpdate_file'],"w"); 
                                $curl = curl_init();
                                curl_setopt($curl, CURLOPT_TIMEOUT,0);
                                curl_setopt($curl, CURLOPT_URL, $row['licanceFileUpdate_url'].'/licanceFileUpdate/file/'.$row['licanceFileUpdate_file']);
                                curl_setopt($curl, CURLOPT_FOLLOWLOCATION,true);
                                curl_setopt($curl, CURLOPT_FILE, $fp);
                                curl_exec($curl);
                                curl_close($curl);
    bu şekilde indirdim fakat istedğim dosya dızınıne ınmıyor hocam
  • 21-02-2023, 17:28:11
    #8
    sheeflamarck adlı üyeden alıntı: mesajı görüntüle
             $path = $row['licanceFileUpdate_file'];
                                $fp = fopen($path, 'w');
                                
                                $file=fopen($row['licanceFileUpdate_file'],"w");
                                $curl = curl_init();
                                curl_setopt($curl, CURLOPT_TIMEOUT,0);
                                curl_setopt($curl, CURLOPT_URL, $row['licanceFileUpdate_url'].'/licanceFileUpdate/file/'.$row['licanceFileUpdate_file']);
                                curl_setopt($curl, CURLOPT_FOLLOWLOCATION,true);
                                curl_setopt($curl, CURLOPT_FILE, $fp);
                                curl_exec($curl);
                                curl_close($curl);
    bu şekilde indirdim fakat istedğim dosya dızınıne ınmıyor hocam
    Bu kodda, dosyanın nereye indirildiğini belirtmek için $path değişkeni tanımlanmış, ancak $fp değişkeni olarak açılan dosya, $path değişkenindeki dizine yazılmak yerine varsayılan olarak geçerli dizine yazılır.
    Dosyanın doğru dizine kaydedilmesini sağlamak için $path değişkeni kullanılmalı ve $fp olarak açılan dosya yerine doğrudan $file değişkeni kullanılmalıdır. Ayrıca, fopen fonksiyonu iki kez çağrılmak yerine, dosyanın yazılacağı dizine doğrudan $file değişkeni kullanılarak bir kez açılabilir.

    Aşağıdaki gibi düzenlenmiş kod, dosyanın $path değişkeninde belirtilen dizine indirilmesini sağlar:
    $path = '/path/to/directory/' . $row['licanceFileUpdate_file'];
    $file = fopen($path, 'w');
                       
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_TIMEOUT, 0);
    curl_setopt($curl, CURLOPT_URL, $row['licanceFileUpdate_url'].'/licanceFileUpdate/file/'.$row['licanceFileUpdate_file']);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($curl, CURLOPT_FILE, $file);
    curl_exec($curl);
    curl_close($curl);
    fclose($file);
    Bu kodda, $path değişkeni dosyanın kaydedileceği tam yolunu belirtir. fopen fonksiyonu sadece bir kez çağrılır ve $file değişkeni olarak açılan dosya, $path değişkeninde belirtilen dizine kaydedilir. fclose fonksiyonu, dosyanın yazımını sonlandırır ve dosya kaynaklarının serbest bırakılmasını sağlar.
  • 22-02-2023, 17:04:02
    #9
    ardakarakas adlı üyeden alıntı: mesajı görüntüle
    Bu kodda, dosyanın nereye indirildiğini belirtmek için $path değişkeni tanımlanmış, ancak $fp değişkeni olarak açılan dosya, $path değişkenindeki dizine yazılmak yerine varsayılan olarak geçerli dizine yazılır.
    Dosyanın doğru dizine kaydedilmesini sağlamak için $path değişkeni kullanılmalı ve $fp olarak açılan dosya yerine doğrudan $file değişkeni kullanılmalıdır. Ayrıca, fopen fonksiyonu iki kez çağrılmak yerine, dosyanın yazılacağı dizine doğrudan $file değişkeni kullanılarak bir kez açılabilir.

    Aşağıdaki gibi düzenlenmiş kod, dosyanın $path değişkeninde belirtilen dizine indirilmesini sağlar:
    $path = '/path/to/directory/' . $row['licanceFileUpdate_file'];
    $file = fopen($path, 'w');
                      
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_TIMEOUT, 0);
    curl_setopt($curl, CURLOPT_URL, $row['licanceFileUpdate_url'].'/licanceFileUpdate/file/'.$row['licanceFileUpdate_file']);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($curl, CURLOPT_FILE, $file);
    curl_exec($curl);
    curl_close($curl);
    fclose($file);
    Bu kodda, $path değişkeni dosyanın kaydedileceği tam yolunu belirtir. fopen fonksiyonu sadece bir kez çağrılır ve $file değişkeni olarak açılan dosya, $path değişkeninde belirtilen dizine kaydedilir. fclose fonksiyonu, dosyanın yazımını sonlandırır ve dosya kaynaklarının serbest bırakılmasını sağlar.
    Teşekkür ederim hocam ilginiz için.