2014-03-12 41 views
2

我想將數據庫中的文本解析爲使用PHP的CSV文件。問題是沒有任何東西被解析到文件中。使用PHP將文本解析爲CSV文件

function exportToCSV($output) 
{ 
    if(isset($output)) 
    { 
     $fp = fopen("skrivtest/test.csv", "w"); 
     foreach($output as $out) 
     { 
      echo $out . "<br>"; 
      fputcsv($fp, $out); 
     } 
     fclose($fp); 
     return true; 
    } 
    else  
    { 
     return false; 
    } 
} 

if($export_csv) 
{ 
    if(!exportToCSV($output = array($row->fornamn . " " . $row->efternamn . " " . $row->personnr . " " . $row->gatuadress . " " . $row->postnr . " " . $row->postadress, ''))) 
    { 
     echo "Can't reach function"; 
     exit; 
    } 
} 

從的var_dump輸出($輸出)

陣列(2){[0] =>串(62) 「海倫Schultzberg 520622-2902FrösekeNygärdet360 77FRÖSEKE」[1] => (0)「」}} Helene Schultzberg xxxxFrösekeNygärdet360 77FRÖSEKE

array(2){[0] => string(61)「Dan Johansson 560122-2754FibblegårdHerråkra360 73 LENHOVDA」[1] =>字符串(0)「」}} Dan Johansson xxxxxFibblegårdHerråkra360 73 LENHOVDA

array(2){[0] => string(55) Lindahl 600521-2797ÖstrabyKvarn 2 360 73 LENHOVDA「[1] => string(0)」「」} Owe Lindahl xxxxÖstrabyKvarn 2 360 73 LENHOVDA

array(2){[0] => string(56) 「Madelene Runberg 680302-2703Östervik14 360 73 LENHOVDA」[1] => string(0)「」}} Madelene Runberg xxxxÖstervik14 360 73 LENHOVDA

array(2){[0] => string(48) 「博索德伯格420818-0077Änghult360 73 LENHOVDA」[1] =>串(0) 「」}柏自焙XXXXXXÄnghult360 73 LENHOVDA

+1

在你的情況'$ output'必須是二維數組 – hindmost

+0

你是什麼意思? – user500468

+0

你可能會考慮使用分隔符爲csv。至少有一些分號。空間不是非常節省,因爲它們可能出現在字符串中,並以這種方式搞亂了你的數據。如果您有時間,請在CSV上閱讀 –

回答

1

爲什麼你在PHP端執行它,當你可以在SQL端執行它?

SELECT * INTO OUTFILE "c:/mydata.csv" 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY "\n" 
FROM my_table; 

(the documentation for this is here)

0
$output = array($row->fornamn . " " . $row->efternamn . " " . $row->personnr . " " . $row->gatuadress . " " . $row->postnr . " " . $row->postadress, '' 

應當與

取代210
$output = array($row->fornamn, $row->efternamn, $row->personnr, $row->gatuadress, $row->postnr, $row->postadress) 
0

$fp = fopen("filename.csv","w"); $value = array($var1,$var2,$var3); fputcsv($fp,$value,"\t");