簡體   English   中英

在csv文件中添加換行符

[英]Adding line breaks in a csv file

我有一個逗號分隔的字符串。 我需要將其轉換為數組,並能夠將其另存為csv文件。

$fp = fopen("abc.csv", "w");
$str = "FRUIT, STOCKS, TYPE\n lychee, instocks, B-type\n strawberry, N/A,A-type\n";

$data = str_getcsv($str);
fputcsv($fp, $data);
fclose($fp);

當前,它將整個字符串輸出為一行。

預期的csv輸出:

FRUIT,       STOCKS,      TYPE
lychee,      instocks,    B-type
strawberry,  N/A,         A-type

您有兩個定界符(換行符和逗號),因此您需要兩次運行該函數。 盡管正如Jay指出的那樣,您可能不需要foreach,因為它已經用逗號分隔了。

$rows = str_getcsv($str, PHP_EOL);
foreach($rows as $row) {
    $data = str_getcsv($row);
    fputcsv($fp, $data);
}

對於您的確切字符串,您需要執行以下操作:

file_put_contents('abc.csv', "FRUIT, STOCKS, TYPE\n lychee, instocks, B-type\n strawberry, N/A,A-type\n");

當前代碼失敗的原因是因為fputcsv()函數正在使用您的值,並在必要時對它們進行雙引號引用。

使用文本編輯器而不是電子表格查看器打開CSV文件,您將看到我在說什么。

您可以首先使用換行符分隔符來分隔每一行,然后使用逗號分隔來分隔列中的每個值,如示例所示。

使用任何php函數時,在換行符定界符(“ \\ n”)中使用雙引號非常重要。

我建議使用修剪功能刪除空白。

$fp = fopen("abc.csv", "w");
$str = "FRUIT, STOCKS, TYPE\n lychee, instocks, B-type\n strawberry, N/A,A-type\n";

$data = str_getcsv($str,"\n");

foreach($data as $line){
    fputcsv($fp, str_getcsv($trim($line)));
}

fclose($fp);

問候!

嘗試

$fp = fopen("abc.csv", "w");
$array= array("FRUIT,STOCKS,TYPE","lychee,instocks,B-type","strawberry, N/A,A-type"); 
foreach ($array as $row) {               
    fwrite($fp, $row . "\r\n");
}
fclose($fp);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM