2012-09-27 13 views
10

मैं एक बड़ी फ़ाइल (10M) php file_get_contentsक्या PHP file_get_contents पर कोई सीमा है?

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

का उपयोग कर यह वापस उदासीनता

string(32720) 

और उसके बाद ही फ़ाइल के भाग दिखाई देने के कारण उत्पादन को पढ़ने के लिए कोशिश कर रहा हूँ। क्या file_get_contents की कहीं सीमा है? मैंने ini_set ('memory_limit', '512M') करने का प्रयास किया, लेकिन यह काम नहीं किया।

संपादित करें: ** का उल्लेख करना भूल गया ** यह एक दूरस्थ फ़ाइल है।

समस्या निवारण :: एचडीडी स्पेस से बाहर। निश्चित है कि अब और सब कुछ काम करता है।

+0

वहाँ इस तरह के एक सीमा नहीं होनी चाहिए। क्या यह फ़ाइल की शुरुआत या अंत दिखाता है? क्या आप वाकई सही फाइल पढ़ते हैं? जब आप फ़ाइल को कुछ हद तक छोटा करते हैं तो यह क्या डंप करता है? – AndreKR

+0

यह 'लोड करने से पहले और' strlen ($ डेटा) 'लोड हो रहा है के बाद डंप' फ़ाइल आकार ($ फ़ाइल) है। मैं थोड़ी उत्सुक हूं कि यह किसके साथ आता है। –

+0

क्या आपने फ़ाइल पर एक फ़्रेड() करने का प्रयास किया है? यदि हां, तो क्या आप एक ही समस्या का सामना कर रहे हैं? –

उत्तर

0

फ़ाइल की सामग्री को आप लोड करने के लिए तार्किक पंक्ति विराम (जैसे: नहीं एक बाइनरी फ़ाइल) से अलग कर रहे हैं चाहते हैं मान लिया जाये, तो आप बेहतर होगा लाइन द्वारा लाइन पढ़ने हो सकता है।

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

आप कर सकते थे हमेशा implode() सरणी वापस एक एकल स्ट्रिंग के लिए यदि आप वास्तव में एक "हिस्सा" में फ़ाइल की आवश्यकता (लाइन ब्रेक चरित्र की अपनी पसंद के साथ)।

संदर्भ -

+0

मुझे लगता है कि इतनी बड़ी फाइलों के साथ वे बाइनरी हैं, इसलिए 'fgets' नहीं एक अच्छा विचार हो सकता है। –

+0

@ale - अच्छा बिंदु। मैंने प्रश्न में फाइल के बारे में अपनी धारणा को स्पष्ट किया है। ओपी द्वारा प्रदान किए गए कोड नमूने में – Lix

+0

@ale - (अभी ध्यान दिया गया), एक '.txt' एक्सटेंशन प्रदान किया गया है। तो यह सब के बाद प्रासंगिक हो सकता है। – Lix

संबंधित मुद्दे