Тема: What Is Csv?
Показать сообщение отдельно
Старый 07.06.2002, 03:51
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 19  
Crazy
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Кстати, у меня есть печальное известие: мои подозрения были не напрасны. Функция fgetcsv действительно глючит.

Тестовый пример:

Код:
<pre>
<?php

$f = fopen("test.csv","r");
$data = fgetcsv($f,1000,";");
foreach($data as $item)
  echo "[$item]\n";
?>
</pre>
Входной файл (test.csv):

Код:
a;_b;_c_;"d;d";"""e;e""";"_f;f_"
Здесь пробелы из соображений наглядности заменены знаками подчеркивания -- при проведении сравнительного тестирования не забудьте провести обратную замену.

Что должно получится на выходе (проведена та же замена):

Код:
[a]
[_b]
[_c_]
[d;d]
["e;e"]
[_f;f_]
Что получается:

Код:
[a]
[b]
[c]
[d;d]
["e;e"]
[_f;f_]
Как мы видим, fgetcsv корректно обрабатывает случай внедренного разделителя, но обкусывает все ведущие и завершающие пробелы незаквоченных строк.

Такое поведение можно игнорировать пр импорте числовых данных, но оно может быть неприемлемо при импорте текстовой информации.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++