php? izle film indirmek için yeterli () nedir?

3 Cevap

file_get_contents bir sunucuda bulunan uzaktan film dosyalarını indirmek için) yeterli (mi?

Ben sadece belki dize büyük film dosyalarını depolamak zararlı olduğunu düşünüyorum? php dokümanlar göre.

OR i cURL kullanmanız gerekiyor? Ben cURL bilmiyorum.

GÜNCELLEME: Bu büyük film dosyalarıdır. 200MB her çevrede.

3 Cevap

O tek seferde belleğe tüm dosya yüklemek için gidiyor çünkü file_get_contents() bir sorundur. Eğer, daha sonra file_get_contents() gerekir (bu bir web sunucusu ise, aynı anda bu davranışı oluşturmak birden fazla hit olabilir ve bu nedenle her fazla bellek bu ihtiyacı dikkate alarak) operasyonu desteklemek için yeterli bellek varsa, iyi olacak. Ancak, bunu yapmak için right yol değil - özellikle operasyonların bu tür için tasarlanmış bir kitaplık kullanmalısınız. Başkaları tarafından belirtildiği gibi, cURL hile veya wget yapacağız. Ayrıca fopen('http://someurl', 'r') kullanarak ve dosyadan blokları okuma ve daha sonra düz yazma ayrıcalıkları için açılmış olan bir yerel dosyaya onları damping iyi şans olabilir.

@ Benekli baykuş önerildiği gibi bu dosyanın boyutuna bağlı olabilir. Küçük bir film için yeterli olabilir. Genel olarak ben cURL olsa daha uygun olacağını düşünüyorum. Sen file_get_contents () ile daha onunla çok daha fazla esnekliğe sahip.

Eğer fread () kullanarak bir anda birkaç byte okuyabilirsiniz.

$src="http://somewhere/test.avi";
$dst="test.avi";
$f = fopen($src, 'rb');
$o = fopen($dst, 'wb');
while (!feof($f)) {
     if (fwrite($o, fread($f, 2048)) === FALSE) {
        return 1;
     }
}
fclose($f);
fclose($o);