2012-12-20 14 views
5

संभव डुप्लिकेट:
how to extract data from csv file in phpPHP और सीएसवी फ़ाइल - लाइन के अंत का पता लगाने के लिए कैसे?

मैं XLS में कुछ डेटा है, मैं उन्हें सीएसवी के रूप में बचाने के लिए, सीमांकक ** अल्पविराम * है। तब मैं इस CSV फ़ाइल से डेटा लोड करने की कोशिश कर रहा हूँ:

$input = explode("\r\n", fread($file, filesize("my_data.csv"))); 
print_r($input); 

उत्पादन:

Array ([0] => data from the CSV file) 

यह समस्या है - में सरणी हमेशा केवल एक आइटम है, जहां सभी बाहर मुद्रित कर रहे हैं है सीएसवी फ़ाइल से डेटा। वो कैसे संभव है? सरणी में सीएसवी फ़ाइल में पंक्तियों जितनी चीजें नहीं हैं?

इसके अलावा, मैंने "\r\n" को "\ n" के लिए बदलने की कोशिश की है, लेकिन यह वही है।

मैं जो करने की कोशिश कर रहा हूं - सीएसवी फ़ाइल से प्रत्येक पंक्ति लोड करें और यह प्रत्येक प्रक्रिया को संसाधित करने के लिए लोड करें। फ़ाइल का

उदाहरण:

a,b,c,d 
e,f,g,h 

उत्पादन:

a,b,c,d e,f,g,h

+2

सीएसवी डेटा –

+0

पढ़ने के लिए निर्मित fgetcsv() फ़ंक्शन का उपयोग करें किसी भी कारण से आप http://php.net/manual/en/function.fgetcsv.php का उपयोग नहीं कर रहे हैं? अपने आप से सीएसवी डेटा पार्स करने की कोशिश न करें - आप दर्द की दुनिया के लिए संख्याओं की एक साधारण सूची से अधिक जटिल के साथ होंगे। –

+0

लेकिन दोस्तों, आप पंक्ति पर अंतिम आइटम कैसे हल करते हैं? क्योंकि, इस अंतिम आइटम में अंत में कोई कॉमा है, इसलिए अंतिम आइटम दूसरी पंक्ति पर पहले आइटम के साथ विलय हो गया है। – user984621

उत्तर

4

मैं php के csv फ़ाइल पढ़ने समारोह fgetcsv() में बनाया का उपयोग कर की सलाह देते हैं और अपने खुद के नहीं बना: http://php.net/manual/en/function.fgetcsv.php

if (($handle = fopen($file, "r")) !== FALSE) { 
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
     $row = implode (",",$data); //puts back together the row from the csv 
     echo $row. "\n"; //assuming you want a visual linebreak on console, add the \n 
    } 
    fclose($handle); 
} 
+0

मुझे नहीं पता कि यह एक बग है या नहीं या, लेकिन जब मैं इसे आज़माता हूं, तो लाइन में आखिरी वस्तु अंत में एक अल्पविराम नहीं है - मुझे परेशानियों में क्या मिल रहा है ... क्योंकि मुझे उम्मीद आउटपुट नहीं मिलता है। – user984621

+0

रे, कृपया ओपी को चेकआउट करें, यह वह आउटपुट है जो मुझे मिलता है अगर मैं इस स्निपेट का उपयोग करूंगा - अक्षर 'डी' और' ई' एक आइटम में विलय कर दिया गया है। यह मेरी पूरी समस्या है कि मुझे नहीं पता कि कैसे हल करें। – user984621

0

मैं कैसे इस समस्या को हल: सीएसवी में फ़ाइल निर्यात से पहले

XLS फ़ाइल में, मैं चादर एक और स्तंभ के अंत चार ' साथ में जोड़ा।