PHP генерирует CSV, не отправляя правильные новые переводы строки

У меня есть скрипт, который генерирует CSV-файл, используя следующий код:

header('Content-type: text/csv');
header('Content-Disposition: attachment; filename="'.date("Ymdhis").'.csv"');
print $content;

Переменная $ content просто содержит строки с полями, разделенными запятыми, а затем завершается с помощью. "\ n"; создать новую строку.

Когда я открываю файл в csv, он выглядит нормально, однако, когда я пытаюсь использовать файл для импорта во внешнюю программу (MYOB), он не распознает символ конца строки (\ n) и принимает одну длинную строку текст.

Когда я просматриваю содержимое файла в блокноте, символ конца строки (\ n) представляет собой небольшой прямоугольник, который выглядит как код символа 0x7F.

Если я открою файл и снова сохраню его в Excel, он удалит этот символ и заменит его соответствующим символом конца строки, и я смогу импортировать файл.

Какой символ мне нужно генерировать в PHP, чтобы блокнот распознал его как допустимый символ конца строки? (\ n), очевидно, не выполняет эту работу.

12 голосов | спросил sjw 30 AMpFri, 30 Apr 2010 10:34:16 +040034Friday 2010, 10:34:16

2 ответа


0

Обязательно используйте двойные кавычки вокруг \ r \ n, а не одинарные, как указано в предыдущем ответе!

ответил Brian Anderson 11 Jam1000000amWed, 11 Jan 2012 01:05:58 +040012 2012, 01:05:58
0

Я столкнулся с той же проблемой. Позже я заменил
    одинарные кавычки ' с двойными кавычками "  создание переменной $ content .

то есть. Сохранение внешних кавычек в переменной $ content должно быть двойным, а не единичным.

И это сработало :)

ответил user306 1 22016vEurope/Moscow11bEurope/MoscowTue, 01 Nov 2016 18:01:14 +0300 2016, 18:01:14

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132