csv中的Php换行符

csv中的Php换行符,php,csv,line,break,Php,Csv,Line,Break,我花了几个小时的时间研究如何用php在csv中换行,但什么也做不了 我用数据库中的数据作为信息构建了一个csv 我基本上有: $company = $row['COL 4']." ".$row['COL 5']." ".$row['COL 6']." ".$row['COL 7']; $company = str_replace("\n", " ", $company); $company = str_replace("\r", " ", $company); 正如你们所看到的,我试着在每行之

我花了几个小时的时间研究如何用php在csv中换行,但什么也做不了

我用数据库中的数据作为信息构建了一个csv

我基本上有:

$company = $row['COL 4']." ".$row['COL 5']." ".$row['COL 6']." ".$row['COL 7'];
$company = str_replace("\n", " ", $company);
$company = str_replace("\r", " ", $company);
正如你们所看到的,我试着在每行之后换行,但它不起作用

csv现在看起来像这样

谷歌微软苹果索尼

但它会断线,看起来像这样:

谷歌 微软 苹果
索尼

str_replace反过来使用参数。现在您正在用空格替换新行。新行使用PHP_EOL,您也可以使用“\n”$company=str\u replace\n,$company;谢谢,我试过了,但没有工作属性。我认为您尝试将CSV作为字符串写入,通常这是使用fputcsv对文件执行的,但在本例中,我们打开了一个虚拟文件并对其进行写入。代码的问题在于它没有考虑分隔符转义。因此,如果其中一列中有空格,它将拆分为两列。fputcsv为您处理大多数边缘情况。为什么不在回答中添加此解释?目前您的答案包含0个解释,这使得它毫无价值。这就是我想指出的。
$fp = fopen('php://memory', 'w+');

// replace $rows with your iterator
foreach ($rows as $row) {
    fputcsv($fp, $row);
}

fseek($fp, 0);

$csv = '';

while (!feof($fp)) {
    $csv .= fread($fp, 1024 * 8);
}

echo $csv;