[英]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.