2012-09-27 25 views
10

Ben Geri ardındanPHP file_get_contents'ta bir sınır var mı?

string(32720) 

ve sadece dosyanın bir kısmını gösteren çıktıyı döker php file_get_contents

$file = 'http://www.remoteserver.com/test.txt'; 
$data = file_get_contents($file); 
var_dump ($data); 

kullanarak büyük bir dosya (10M) okumaya çalışıyorum. File_get_contents'ın bir yeri var mı? Ini_set ('memory_limit', '512M') yapmayı denedim, ancak bu işe yaramadı.

DÜZENLEME: ** , ** 'yi açıklamayı unuttuysanız, uzak bir dosyadır. HDD alanı

SORUN ÇÖZÜLDÜ :: yetersiz. Bu düzeltildi ve şimdi her şey çalışıyor. mantıksal satır sonları (örneğin: bir ikili dosya) ile ayrılır yüklemek istediğiniz dosyanın içeriğini varsayarsak

+0

böyle bir sınır yoktur olmamalıdır. Dosyanın başlangıcını veya sonunu gösterir mi? Doğru dosyayı okuduğundan emin misin? Dosyayı biraz kısalttığında ne döküyor? – AndreKR

+0

Yüklemeden önce 'filesize ($ file)' ve yüklemeden sonra strlen ($ data) 'dump edin. Ne ile geldiğini merak ediyorum. –

+0

Dosyada bir fread() yapmayı denediniz mi? Eğer öyleyse, aynı sorunla karşılaşıyor musunuz? –

cevap

0

, o zaman satır satır okuyarak daha iyi olabilir.

$fp = fopen($path_to_file, "r"); 
$fileLines = array(); 
while (!feof($fp)){ 
    array_push(fgets($fp),$fileContents); 
} 
fclose($$fp); 

Yapabilirsin hep implode() geri tek bir dizeye dizide gerçekten bir "yığın" dosyayı gerekirse (satır sonu karakteri seçiminize).

Referans -

+0

Böyle büyük dosyalar ile ikili olduklarından şüpheleniyorum, yani 'fgets' iyi bir fikir olmayabilir. –

+0

@ale - iyi nokta. Söz konusu dosya ile ilgili varsayımı açıklığa kavuşturdum. – Lix

+0

@ale - OP tarafından sağlanan kod örneğinde (sadece fark edilir), bir '.txt' uzantısı sağlanır. Yani bu her şeyden önce alakalı olabilir. – Lix

İlgili konular