Итак, я пытаюсь использовать fputcsv, и он работает почти так, как задумано. У меня есть эта странная проблема, которую я не могу решить, и я не нахожу хорошей документации или даже людей, у которых есть эта проблема.
Когда есть строка, которая помещается в csv, в большинстве случаев все идет хорошо, но иногда она без всякой причины начинает новую строку в середине строки, когда я захожу в БД MySQL, она не показывает никаких такие вещи, как \n
, даже странного характера.
Он просто начинает новую строку без всякой причины, иногда я вижу, что есть «длинное» слово, написанное так: «сегодня суббота.завтра воскресенье», а затем начинается новая строка после завтра, места нет между точкой и следующим словом, но это не кажется веской причиной начинать новую строку?
Когда я распечатываю массив, он также имеет ту же строку, которая заканчивается в этом месте... Кто-нибудь знает, что это может быть?
Мои извинения, если это не имеет никакого смысла...
РЕДАКТИРОВАТЬ: добавлен код и примеры
public function actionExportCSV()
{
$model = Vicreg::model()->findAllByAttributes(array('event_id' => $_GET['eventid']));
if($model){
$output = fopen("php://output",'w') or die("Can't open php://output");
header("Content-Type:application/csv");
header("Content-Disposition:attachment;filename=verzorgingen.csv");
fputcsv($output, array('id','event_id','name','firstname','dob','sex','urgency','pathology','pathology_other','treatment','treatment_other','medication','medication_other','material_other','material','docs','hour_in','hour_out','station_id','nurses_id','transport_id','hospital_id','ambulance_id','closed'));
foreach($model as $vicreg) {
$array = array();
//if($vicreg->id == "83") { print_r($vicreg); exit(0); }
foreach($vicreg->attributes as $key => $attribute) {
$attribute = str_replace(' ', '', $attribute);
$array[$key] = trim(stripslashes($attribute));
}
fputcsv($output, $array, ',' ,'"');
}
fclose($output) or die("Can't close php://output");
} else {
throw new CHttpException(422, 'Geen evenement opgegeven');
}
}
Пример
83,4,Name,Firstname,1970-01-01,1,3,4,"normal string",1,"dagelijks 2X te verzorgen. brandwonden 3 dagen geleden opgelopen door knalpot van brommer.
voornamelijk 2de grads brandwonden + открыть чудо",,,,,,"дата","дата",5,,1,,,1
После "броммер". есть новая линия...
/n
— Вы на 100 % уверены, что это/n
? Для новой строки используется синтаксис\n
, если это имеет значение в вашем коде. Демонстрация кода и.csv
примера поможет пролить свет на эту тему. - person Funk Forty Niner   schedule 21.07.2014SELECT ASCII(SUBSTRING(column_name, 34)) ...
, чтобы найти точное значение ASCII 34-го символа...) Кажется подозрительным совпадением, что ваш пример новой строки находится точно в конце предложения. Я предполагаю, что в ваших исходных данных есть только новая строка. - person Matt Gibson   schedule 21.07.2014