Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Выбор данных из CSV файла

Сообщения:  [1-6] 

 
 автор: Trianon   (13.04.2007 в 12:34)   письмо автору
 
   для: KPETuH   (13.04.2007 в 12:20)
 

Если CSV-файл чуть сложнее примитива, то есть имеет строки с кавычками или с символами-разделителями среди значений полей - с помощью explode Вы его ни в жисть не разберете.
Разобрать его можно только точным аккуратным посимвольным парсингом. Что собственно fgetcsv и делает - при правильно выставленных входных параметрах.

Да, у нее есть недостаток. В версиях ниже 5 она зачем-то требует предельный размер строки.
Но ей-богу, выполнить отдельный проход по файлу, чтобы подсчитать этот паршивый размер - зло куда меньшее, чем сталкиваться с тем, что скрипт в самый неподходящий момент сработает не так как надо.

Да, руками csv тоже можно отпарсить. Но любая php-реализация по скорости не будет идти ни в какое сравнение со стандартной функцией.

   
 
 автор: KPETuH   (13.04.2007 в 12:20)   письмо автору
 
   для: KPETuH   (13.04.2007 в 07:57)
 

при первом же моем разборе csv файла этой функцией разобрал криво, при дальнейших таже ерунда плюнул и разобрал explode по ; . И сразу все нормально, с тех пор у меня к этой функции некое предубеждение :).

   
 
 автор: Trianon   (13.04.2007 в 11:01)   письмо автору
 
   для: KPETuH   (13.04.2007 в 07:57)
 

аргументы?

   
 
 автор: KPETuH   (13.04.2007 в 07:57)   письмо автору
 
   для: Derv   (12.04.2007 в 19:57)
 

fgetcsv() не рекомендовал бы использовать...

   
 
 автор: Trianon   (12.04.2007 в 20:12)   письмо автору
 
   для: Derv   (12.04.2007 в 19:57)
 

С помощью file() , foreach(), и explode()
Регулярками тут делать нечего.
Только это не csv
Впрочем, если закрыть на это глаза, можно применить fgetcsv()

   
 
 автор: Derv   (12.04.2007 в 19:57)   письмо автору
 
 

Здравствуйте имеется CSV файл такого рода :


#---- Котировки FOREX ----
USD/JPY,USD/JPY - ФОРЕКС,16:45,119.24,119.29
EUR/GBP,EUR/GBP - ФОРЕКС,16:45,0.68073,0.68077
USD/CHF,USD/CHF - ФОРЕКС,16:45,1.2181,1.2185
EUR/USD,EUR/USD - ФОРЕКС,16:30,1.3462,1.3467
GBP/USD,GBP/USD - ФОРЕКС,16:45,1.97711,1.9776
#---- Курсы ЦБ РФ ----
USD ЦБ РФ,1 Доллар США,13/04,25.8647,-0.0534
EUR ЦБ РФ,1 ЕВРО,13/04,34.8423,0.0395
AUD ЦБ РФ,1 Австралийский доллар,13/04,21.3539,-0.0208
GBP ЦБ РФ,1 Англ. фунт стерлингов,13/04,51.1293,-0.1212
#---- Курсы ЦБ РФ по драгоценным металлам ----
Золото ЦБ РФ,Золото - ЦБ РФ,12/04,561.4,-1.65
Серебро ЦБ РФ,Серебро - ЦБ РФ,12/04,11.34,0.04
Платина ЦБ РФ,Платина - ЦБ РФ,12/04,976.89,4.15
Палладий ЦБ РФ,Палладий - ЦБ РФ,12/04,286.91,7.88


Необходимо его отпарсить : выдрать данные между "#---- Курсы ЦБ РФ ----" и "#---- Курсы ЦБ РФ по драгоценным металлам ----" а выдранные данные - каждую строку забить в отдельный элемент массива, как это лучше сделать?

   

Сообщения:  [1-6] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования