csv — новая строка в переполнении стека

Я делаю файл CSV, и мне нужно сделать новую строку после каждой процедуры. Стандарт \ n \ r не работает.

Код выглядит так:

while ($resultD=mysql_fetch_assoc($queryDown))
{
$csv.= $resultD["first_name"].' , '.$resultD["last_name"].' , '.$resultD["login"].' , '.$resultD["password"].'\n\r';
}
$filename= "export.csv";
$theFile=fopen($filename,"w");
fwrite($theFile, $csv);

-1

Решение

Вы можете использовать:

$csv .= '...' . "\r\n";

Или же

$csv .= '...' . PHP_EOL;

Или посмотрите на fputcsv чтобы заставить его работать легко: http://php.net/manual/en/function.fputcsv.php

4

Другие решения

использование "\r\n", вместо '\n\r',

Вам нужны двойные кавычки "" распознать escape-последовательности \r а также \n, Одиночные кавычки этого не сделают.

РЕДАКТИРОВАТЬ

Как упоминал Майкл, вы также можете использовать PHP_EOLопять вместо '\n\r',

Это создает символ новой строки, который совместим на нескольких платформах.


Из документации PHP на строки:

Заметка: В отличие от синтаксиса в двойных кавычках и heredoc, переменные и escape-последовательности для специальных символов не будут расширяться, если они встречаются в строках в одинарных кавычках.

6

$csv.= $resultD["first_name"].' , '.$resultD["last_name"].' , '.$resultD["login"].' , '.$resultD["password"]."\n";
0