Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Парсинг файлов с таблицами произвольной структуры

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: и построение интерфейса для работы с ними
Zuldek
Отправлено: 25 Февраля, 2013 - 16:04:27
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




В планах есть создание того, то указано в названии топика.

Что должно уметь делать приложение:

1. Принимать pdf-, doc-/docx-, rtf-, xml-, xls-, csv-, html- файл произвольной структуры.
2. Строить на основании этой структуры таблицы с импортированными данными
3. После изменения сгенерированной структуры таблицы пользователем корректно записать поля в базу данных с правильными типами и индексами по полям.

Что будет в входящих файлах.

В входящих файлах будут прайс-листы (или любые данные, содержащие прайс-листы) любых форм, размеров, структуры. С картинками и без, с любым количеством столбцов и строк, с таблицами неправильной структуры, когда в начале таблицы идет 10 столбцов, а потом, - остается 8 (они объединяются). Кроме того, - обязательно будет мусор в виде текста перед таблицей, лишних строк со справочными данными, картинками и баннерами (обычно в 1 строке или в заголовке прайса помещается фотография, логотип компании и т.д.).

Как обычно работают такие импорты? Такие импорты обычно работают с файлами определенной структуры. Моя же задача - создать приложение, которое от этой структуры будет независимо или зависимо самым минимальным образом (1 требование - файл должен содержать таблицу).
1. Вопрос: есть-ли близкое по духу решение, по уровню выше библиотек для работы с файлами указанных форматов?
2. Вопрос: встречал-ли интересные, красивые и удобные до слез счастья интерфейсы/библиотеки на JS-Jquery для визуализации работы с таблицами?
3. Вопрос. Какими библиотеками (в бэкенде) для работы с каждым форматом вы бы пользовались для решения данной задачи?
4. Сталкивался-ли кто-нибудь с волшебными демонами, приводящими любые файлы, допустим к xml структуре (которые смогли бы переварить даже такой файл, замусоренный лишними данными).
 
 Top
Zuldek
Отправлено: 26 Февраля, 2013 - 09:45:37
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




И так. Никто пока не высказался: порассуждаю сам.

Работать с файлами на пыхе, как мне кажется, дело крайне неблагодарное, особенно учитывая такое количество форматов и требование не шаблонной структуры файла.

Потому решения жизнеспособных вижу 2:

1. Искать демона, который бы смог сам разобрать хотя бы большинство этих форматов в XML, и с XML уже работать через пхп. HTML и CSV, положим разбор будет элементарен. Что не сказать о doc и xls и pdf. Серьезные библиотеки на пыхе для работы с этими форматами монструозны (поправьте, если ошибаюсь: мб ошибаюсь и не нашел хорошие).

2. Писать библиотеки с 0. Даже если удастся подобрать и библиотеки под каждый формат на пхп, поддерживать это "чудо" будет не очень удобно. А собственным велосипедом будет проще управлять. Производительность решения можно будет поднять, задействуя xcache. Также стоит подумать о целесообразности использования тут Hiphop. Возможно для этой задачи преобразование в C++ даст выигрыш в скорости... .
Что-то подсказывает, что есть готовые универсальные решения и не на php... .

(Отредактировано автором: 26 Февраля, 2013 - 09:50:30)

 
 Top
EuGen Администратор
Отправлено: 26 Февраля, 2013 - 09:57:02
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Для xls: codeplex, php office excel, simple excel reader
Для doc - подойдет то же, кроме третьей ссылки.
С pdf же php умеет работать и без сторонних библиотек, правда, для решения задачи чтения нужно будет из этого создавать свою библиотеку, либо же попросту сконвертировать этот формат в более удобный html, используя готовую php-библиотеку
Я не думаю, что есть "серебряная пуля" для данной задачи - слишком разные форматы, слишком разное представление. В любом случае нужно писать некоторый базовый интерфейс для работы с файлами, затем описывать конкретные реализации для каждого формата. Делать это в виде специального сервиса (демона) - не понял причины, почему это нужно и в чем выигрыш. В том, чтобы не реализовывать это на PHP? Тогда можно с самого начала не думать о реализации данной задачи на этом языке.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Zuldek
Отправлено: 26 Февраля, 2013 - 11:58:24
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




EuGen пишет:
Делать это в виде специального сервиса (демона) - не понял причины, почему это нужно и в чем выигрыш. В том, чтобы не реализовывать это на PHP? Тогда можно с самого начала не думать о реализации данной задачи на этом языке.

Представляя сколько операций будет производить движок php (библиотеки не легкие, а порядок исполнения php-скриптов известен), почему-то кажется что реализация не на php будет кратно быстрее. Но вы правы, - "кажется" тут неуместно и выигрыш в конечной скорости обработки файла при реализации не на PHP заранее тут сложно спрогнозировать. Зато на php решу задачу гораздо быстрее. Спасибо за ответ и ссылки.

(Отредактировано автором: 26 Февраля, 2013 - 12:03:56)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB