Перейти к содержимому

Сервис обмена электронных валют


Обработка прайсов

#1 кипятильник

кипятильник
  • Пользователь
  • 102 сообщений
  • Репутация: 0
0

Отправлено 05 Март 2011 - 22:01

Здравствуйте,
занимаюсь разработкой инет магазинов шин и приходиться обрабатывать прайсы поставщиков есть своя система обработки

к примеру


$string	 = 155/70/13 BFGOODRICH WINTER G 75T;
$pattern	 = "/([0-9][0-9][0-9])\/([0-9][0-9])\/([0-9][0-9]) ([A-Za-z]+) (.+) ([5-9][0-9])([BCDEFGJKLMNPQRSTUHVWY])/";
$replacement = "\$1@@\$2@@\$3@@\$4@@\$5@@\$6@@\$7";
$string	  = preg_replace($pattern, $replacement, $string);

но каждый раз они присылают прайс где некоторые строки не распазнаються, убраны пробелы, добавлены пробелы, новые форматы
бывает чтобы обработать прайс 100 срок нужно создать 50 "распознавателей"

может есть идеи?

 

 

  • 0

#2 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 06 Март 2011 - 23:44

кипятильник, ты забираешь откуда-нить эти прайсы или тебе их присылают? Если присылают, скажи чтобы сохраняли в формате "таблицы XML" или сам пересохрани. Тогда данные можно будет вытаскивать , разбирая:
<Table ss:ExpandedColumnCount="3" ss:ExpandedRowCount="2" x:FullColumns="1"
   x:FullRows="1">
   <Row>
	<Cell><Data ss:Type="String">Ячейка A1</Data></Cell>
	<Cell><Data ss:Type="String">Ячейка B1</Data></Cell>
	<Cell><Data ss:Type="String">Ячейка C1</Data></Cell>
   </Row>
   <Row>
	<Cell><Data ss:Type="String">Ячейка A2</Data></Cell>
	<Cell><Data ss:Type="String">Ячейка B2</Data></Cell>
	<Cell><Data ss:Type="String">Ячейка C2</Data></Cell>
   </Row>
  </Table>

  • 0

#3 кипятильник

кипятильник
    Topic Starter
  • Пользователь
  • 102 сообщений
  • Репутация: 0

Отправлено 07 Март 2011 - 16:15

Прайсы присылают в формате Exel я их пересохраняю в csv и обрабатываюзнаю, меня более волнует как качествено обработывать строки
  • 0

#4 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 07 Март 2011 - 18:55

кипятильник, либо сказать им, чтобы они придерживались одного формата. Иначе парсить можно сколько угодно. Если формат данных меняется, то и тебе придётся парсер под него подгонять.
Ну если пробелов количество увеличивается, то можно поставить \s+.
  • 0

#5 кипятильник

кипятильник
    Topic Starter
  • Пользователь
  • 102 сообщений
  • Репутация: 0

Отправлено 07 Март 2011 - 19:05

ZiTosS, ну там дело не только в пробелах но и в форматах :) может есть возможность как то подругому обрабатывать в лучший способ?
  • 0

#6 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 07 Март 2011 - 19:17

кипятильник, прикрепи хоть парочку файлов в архиве, а то ничего не видя, сказать нельзя.
  • 0

#7 кипятильник

кипятильник
    Topic Starter
  • Пользователь
  • 102 сообщений
  • Репутация: 0

Отправлено 07 Март 2011 - 19:51

просьба сильно не замарачиваться

загрузил

Прикрепленные файлы

  • Прикрепленный файл  arh3.rar   153,75К   Количество загрузок: 97

  • 0

#8 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 07 Март 2011 - 21:03

кипятильник, да уж... Тут прямо в лоб задачу не решить. Есть вариант хранить список регулярок в файле или в базе, и если не парсит ни по одному старому, то предлагать добавить в список новый шаблон. Не знаю, хорошо ли это будет. Всё же сегодня одно, а завтра другое :)
  • 0

#9 кипятильник

кипятильник
    Topic Starter
  • Пользователь
  • 102 сообщений
  • Репутация: 0

Отправлено 07 Март 2011 - 23:01

да в том то и дело что они иногда делают по новому, а ко мне обращаються переделать магазинов несколько иногда туплю, вот и думаю как сделать по лучше
  • 0

#10 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 08 Март 2011 - 14:09

как идея, думаю они работают в 1С там предусмотрена выгрузка данных, оттуда и отталкивайся
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru