Forum Webscript.Ru
Программирование => PHP => Тема начата: m_yashkov от 25 Мая 2002, 17:19:07
-
Возможно проблема уже обсуждалась, не знаю.
Так вот - нужно организовать доступ из PHP-скрипта к xls-файлу (под юниксом). Я просмотрел в сети на эту тему все, что можно. Вариантов немного: во-первых, есть скрипт на Perl, но он применим только для относительно простых xls-файлов (а прайс-листы в формате xls очень часто имеют сложную структуру), к тому же говорят, что этот скрипт часто глючит, да и Perl я знаю гораздо хуже, чем PHP.
На PHP я ничего подобного не нашел (есть несколько примеров, но они для виндоуз). Второй вариант - создать ODBC - источник данных и работать с xls-файлом как с базой данных. Про этот вариант более подробной инфы я практически не нашел (честно говоря даже не имею представления, как организовать ODBC-источник под юниксом - до этого работал только напрямую с базами данных - MySQL, PostgreSQl).
Может кто-то уже делал что-то подобное?
Заранее благодарю за помощь.
P.S. Обычно, если нужно поместить в базу на сервере инфу из .xls или .mdb-файла, я обрабатываю их на стороне клиента с помощью ActiveX-элементов, а потом в виде текстовых файлов отправляю на сервер. А там уже с ними работает PHP.
Но тут заказчик попался упертый - требует, чтобы вся обработка шла на сервере...
-
http://forums.webscript.ru/showthread.php?s=&threadid=3071
http://forums.webscript.ru/showthread.php?s=&threadid=5499
http://forums.webscript.ru/showthread.php?s=&threadid=4986
http://forums.webscript.ru/showthread.php?s=&threadid=4404
http://forums.webscript.ru/showthread.php?s=&threadid=4158
http://forums.webscript.ru/showthread.php?s=&threadid=3257
-
Я просмотрел линки, спасибо. Все в общем т.с. - на PHP непосредственно для работы с .xls класса нет, а в Perl лезть не очень хочется... Тем более, как я понял, там скрипт (на www-106.ibm.com) для чтения файла работает только под windows.
А вот хотелось бы подробнее - как работать с ODBC под юниксом? Что для этого должно быть установлено в системе?
-
Зато непосредственно в PHP есть fgetcsv()
Которая читает строку CSV файла и правильно разбирает в массив.
А этот файл по SaveAs из Excel получается...
Уж сохранить так любой...... клиент сможет. Хотя возможно это тоже только для простых файлов.
-
Весь прикол в том, что по техзаданию нужно ежедневно скачивать несколько прайс-листов в формате xls с разных серверов (причем без какого-либо участия оператора, так что никто не будет сохранять их в CSV). А потом эти прайсы должны определенным образом обрабатываться и скидываться в общую базу данных. Скачивание прайсов - относительно простая задача, а вот дальше...
Скорее всего, все-таки придется сделать прогу на стороне клиента (на VB), которая будет ежедневно скачивать прайсы с сервера, переводить их в CSV (или во что-нибудь более интеллектуальное) и уже в таком виде передавать их PHP-скрипту. Хотя не знаю, согласится ли заказчик с таким решением.
А все-таки, можно ли работать на юниксе с ODBC?
/У заказчика свой личный сервак, так что он может поставить туда любое ПО/
-
m_yashkov
по идеи (практически не пробовал), можно.
но однозначно под windows.
Т.е. управлять из php excel\'ом и автоматически конвертировать xls в тот формат, который требуется.
или записывать (если открыт доступ) сразу в mysql базу данных, которая стоит на юниксе.