Ben http üzerinden erişmek çok büyük bir uzak bir XML dosyasından veri az miktarda almak gerekir. Ben sadece başında dosyanın bir bölümünü gerekir, ancak ben erişim.Ancak dosyaları genellikle hepsini indirerek bir zaman aşımı neden olacak kadar büyük olabilir. Bu bağlantıyı kapatmadan önce gerekli olarak sadece kadar çekin fsockopen ile mümkün olmalıdır gibi görünüyor, ama ben denedim hiçbir şey çalıştı.
Aşağıda çalışıyorlar ne basitleştirilmiş bir sürümüdür. Herkes farklı ne yapmak gerekir bana söyleyebilir?
<?php
$k = 0;
function socketopen($funcsite, $funcheader){
$fp = fsockopen ($funcsite, 80, $errno, $errstr, 5);
$buffer = NULL;
if ($fp) {
fwrite($fp, "GET " . $funcheader . " HTTP/1.0\r\nHost: " . $funcsite. "\r\n\r\n");
while (!feof($fp)) {
$buffer = fgets($fp, 4096);
echo $buffer;
if($k == 200){
break;
}
$k++;
}
fclose ($fp);
} else {
print "No Response:";
}
return ( html_entity_decode($buffer));
}
$site = "www.remotesite.com";
$header = "/bigdatafile.xml";
$data = socketopen($site, $header);
?>
Bu iyi çalışır, ama her zaman açılır ve tüm uzak dosyayı indirir. (Ben aslında if ($ k = x) farklı bir koşullu kullanmak, ama bu önemli değil).
Herhangi bir yardım büyük takdir. -Jim