Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2010, 01:46   #1
Leshiy80
 
Регистрация: 24.03.2010
Сообщений: 4
Печаль Php. Построчное чтение из файла в массив

Люди добры помогите, а то голову совсем поломаю

задача у меня такая нарисовалась:

есть файл, условно говоря, с товаром (прайс)
надо его как-то прочитать и построчно отдать на выполнение различным функциям по обработке.

пример:

ТОВАР 1 ; описание ; цена
параметр какой-то нужный
модель 1; параметры
модель 2; параметры

[разделитель]

ТОВАР 2 ; описание ; цена
параметр какой-то нужный
модель 1; параметры
модель 2; параметры
модель 3; параметры
модель 4; параметры

[разделитель]


ТОВАР 3; описание ; цена
параметр какой-то нужный
модель 1; параметры


... у каждой строки различное кол-во данных, но неизменны остаются первые 2 строки, строки с "моделями" меняются и параметры у низ тоже разные могут быть. Поэтому я думаю, что каждую строку нужно отдавать на обработку отдельной функции - это не проблема. проблема в том, как организовать эту "отдачу"....

Последний раз редактировалось Leshiy80; 24.03.2010 в 01:48.
Leshiy80 вне форума Ответить с цитированием
Старый 24.03.2010, 11:31   #2
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

А наработки уже какие-то есть? Можно посмотреть?
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Старый 24.03.2010, 11:46   #3
Leshiy80
 
Регистрация: 24.03.2010
Сообщений: 4
По умолчанию

ну какие наработки, если я не знаю с какого бока подойти?

Вообще это у меня целая история. Сначала я экселевский файл с прайсом сохраняю как csv
потом обрабатываю, удаляя лишнее и как раз привожу квышеописанному виду... -этобыл первый этап

второй- то чего я не знаю как сделать...

треттий -после передечи строк различным функциям - заношу в БД.

----

как я понимаю нужно "цепляться" за разделитель
типа, выполнять пока он не попадтся,нопотом нужно снова запускать в цикл...
не знаю...
Leshiy80 вне форума Ответить с цитированием
Старый 24.03.2010, 17:02   #4
akokin
Пользователь
 
Регистрация: 02.08.2008
Сообщений: 94
По умолчанию

Попробуйте функцию explode(). Она как раз по разделителю работает.
akokin вне форума Ответить с цитированием
Старый 30.03.2010, 02:17   #5
Roms
Пользователь
 
Регистрация: 30.06.2008
Сообщений: 10
По умолчанию

Как вариант:
Команда file() считывает содержимое файла и построчно записывает в массив.
$array = file("filename.txt");

Ну а дальше уже работаете в цикле с каждым элементом массива.
Roms вне форума Ответить с цитированием
Старый 01.04.2010, 15:12   #6
Leshiy80
 
Регистрация: 24.03.2010
Сообщений: 4
По умолчанию

А что дальше?
как отправить каждый элемент полученного массива на исполнение?
И потом, это же нужно как-то "зациклить"...
Leshiy80 вне форума Ответить с цитированием
Старый 01.04.2010, 17:13   #7
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,714
По умолчанию

1)открывает файл - fopen
2)в цикле читатете его построчно - fgets
3)пишете строки в 2мерный массив $tov[0][<имя параметра>], если в строке есть ; то делаете explode
4)если результат fgets==<разделитель>, создаете новый елемент массива $tov[1]
5)и так до конца файла и получаем массив с парметрами
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 01.04.2010, 17:44   #8
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

mv28jam, в каждой строке наверняка есть "\n". Таким образом всегда разбиваю файлы на строки.
P.S. это была поправка к пункту 3.
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 02.04.2010, 11:36   #9
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,714
По умолчанию

Цитата:
Сообщение от spein Посмотреть сообщение
mv28jam, в каждой строке наверняка есть "\n". Таким образом всегда разбиваю файлы на строки.
P.S. это была поправка к пункту 3.
Не понял сути поправки. Зачем мне разбивать строку, если я пользуюсь fgets'ом я и так получу 1 строку.
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 30.10.2014, 12:45   #10
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Возьмите библиотеку PHPExcel http://phpexcel.codeplex.com/ и не будет у вас ни каких проблем. Зачем переводить в CSV потом что то чистить вообще не понимаю.
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение из файла (С) spirit_trapper Помощь студентам 4 26.05.2010 19:37
Запрет на чтение .php файла Linel PHP 3 10.03.2010 18:15
Чтение из файла. Си. MAKEDON Помощь студентам 1 17.08.2009 16:42
Построчное чтение из файла Mihalich1988 Общие вопросы C/C++ 5 17.12.2008 02:10
Чтение фрагмента файла в динамический массив. ZeroCool. Общие вопросы Delphi 2 02.11.2007 08:14