पढ़ता है मैं fgetcsv() का उपयोग कर एक CSV फ़ाइल से डेटा आयात करने के लिए PHP का उपयोग कर रहा हूं, जो प्रत्येक पंक्ति के लिए एक सरणी उत्पन्न करता है। प्रारंभ में, मैं 1024 में अक्षरों की सीमा सेट था, इसलिए जैसे:सुनिश्चित करें कि fgetcsv() पूरी लाइन
while ($data = fgetcsv($fp, 1024)) {
// do stuff with the row
}
हालांकि, एक सीएसवी 200 कॉलम कई पंक्तियों पर 1024 की सीमा को पार कर के साथ। इसने लाइन को पंक्ति के बीच में रोकने के लिए पढ़ा, और फिर fgetcsv() को अगली कॉल शुरू हो जाएगी जहां पिछला एक छोड़ दिया गया था और तब तक जब तक कोई ईओएल नहीं पहुंचा।
मैंने इस सीमा को 4096 तक बढ़ा दिया है, जो कि अधिकांश मामलों का ख्याल रखना चाहिए, लेकिन मैं यह सुनिश्चित करने के लिए एक चेक डालना चाहता हूं कि प्रत्येक पंक्ति के बाद पूरी लाइन पढ़ी जाए। यह कैसे करना है?
मैं रेखा वर्णों (\ n, \ r, \ r \ n) के अंत के लिए सरणी के अंतिम तत्व के अंत की जांच करने के लिए सोच रहा था, लेकिन इन्हें fgetcsv() कॉल द्वारा पार्स नहीं किया जाएगा ?
इसके अलावा, मुझे एहसास है कि मैं प्रोग्राम में प्रोग्राम की सबसे लंबी लाइन निर्धारित कर सकता हूं, लेकिन यह वास्तव में बड़ी सीएसवी फाइलों पर बहुत अधिक ओवरहेड हो सकता है। यह सुनिश्चित करना चाहते हैं कि फ्लाई पर पूरी तरह से प्रत्येक पंक्ति को पढ़ा जाए। –