Побег из разрыва строки в csv php
У меня есть шаблон .csv, который я хотел бы, чтобы люди заполнили, сохранили и загрузили его.
Проблема заключается в следующем, предполагая, что некоторые пользователи будут вставлять скрытые разрывы строк в строку, при использовании fgetcsv() он будет выводить строку, разбитую скрытыми разрывами строк.
Как я могу избежать разрыва строки или очистить свои данные?
Возможное решение:
Предположим, что первая строка верна, $count = подсчитайте количество разделителей до разрыва строки, перестройте текст в массив как пока $считается;
Но я думаю, что есть лучшие доступные варианты.
ПОСЛЕДУЮЩЕЕ РЕДАКТИРОВАНИЕ
Вот ввод *ВАЖНО[! ]: данные внутри файла excel "в порядке", они не разбиты, это одна строка!!! сохранение его в виде csv-файла и открытие в блокноте показывает следующее
asd;"asd
asd
asd";asd;asd
Вот код
$handle = fopen("file.csv","r");
$data = fgetcsv($handle,";");
while($data = fgetcsv($handle)) {
$array = explode(";",$data[0]);
print_r($array);
}
fclose($handle);
Вот повторенные данные
Array ( [0] => asd [1] => "asd ) Array ( [0] => asd ) Array ( [0] => asd" [1] => asd [2] => asd [3] => )
Спасибо
1 answers
Очень легко проверить ваш случай и убедиться, что нет разбитых строк, если поля правильно заключены в кавычки.
Итак, строка CSV, подобная этой
1,"joe
""Big Coyote""
Hopkins",598600
Будет прочитано без единой проблемы.