Büyük XML dosyaları indirmek için cURL kullanarak

2 Cevap php

PHP ile çalışan ve oldukça büyük XML dosyaları bir dizi (50-75MB sıkıştırılmamış) ayrıştırmak gerekiyor ediyorum. Sorun, ancak, bu XML dosyaları uzaktan saklanır ve onları ayrıştırmak önce indirilen gerekir olmasıdır.

Konu hakkında düşündüm, ben bir sistem (bir cURL aktarım muhtemelen zaman aşımı ve PHP bellek sınırlarını önlemek için en iyi yoldur başlatmak için PHP) çağrısı kullanılarak düşünüyorum.

Herkes önce böyle bir şey yapılır mı? Özellikle, ne uzak dosya indirmek ve benim seçim bir yerel klasöre kurtardı sağlamak için Curl geçmek gerekir?

2 Cevap

Bu deneyebilirsiniz:

function download($src, $dst) {
        $f = fopen($src, 'rb');
        $o = fopen($dst, 'wb');
        while (!feof($f)) {
            if (fwrite($o, fread($f, 2048)) === FALSE) {
                   return 1;
            }
        }
        fclose($f);
        fclose($o);
        return 0;
}
download($url,$target);
if ( file_exists($target) ){
   # do your stuff
}

Eğer kod içinden kıvırmak API kullanamazsınız hiçbir neden yoktur. Ayrı bir işlem spawn gerekmez. HTTP URL kurdelelesini çünkü Hatta Fopen kullanabilirsiniz. Diğer bir deyişle, fopen yerel dosyalar üzerinde kullanabilirsiniz tam olarak aynı şekilde web sitesinde uzak dosyalar üzerinde kullanılabilir.