Блог фрилансера - сайты под ключ

Парсер Excel

Просмотров: 16085Комментарии: 6
Вебмастеру

парсер excelДля моей последней работы на движке Даннео, понадобилось выгружать прайс лист в виде таблицы на странице Прайс Лист. Сайт не мой, я его делал на заказ, и его владелец, далёкий от программирования человек, вряд ли горит желанием при каких либо изменениях, вручную проводить всяческие операции со своим прайс листом, что бы вывести его в html коде очищенном от лишнего мусора. Что бы автоматизировать весь процесс без лишних телодвижений, я занялся поиском парсера Excel файлов что бы прикрутить его к движку в виде отдельного мода. Нашёл где то около десятка разных вариантов и предварительно попробовал их на Денвере.

Из всего того что я накачал более менее подошло под мои цели всего 2 варианта. Причём только один оказался действительно наипростейшим скриптом выполненным в одном файле. Для вывода в виде таблицы данных из прайс листа его нужно сохранить в виде CSV файла, что делается одним кликом в самом прайс листе. Потом CSV файл закидывается файл менеджером движка в папку для прайсов. Правда была одна проблема - кодировка! Сайт на заказ в кодировке UTF-8 а CSV файл сохраняется в кодировке win1251. Но использовав простейшую переконвертацию методом mb_convert_encoding проблему решил.

Если вдруг кому нибудь понадобиться данный скрипт, выкладываю готовый код скрипта.

‹?
$gen = "up/price/price.csv";
$f=file_get_contents($gen);
$f=split("\n",$f);
$bt.="\n‹table class=\"price\"›";
foreach ($f as $ff){
$m=split(";",$ff);
$bt.="\n‹tr›";
foreach($m as $mm){
$mm = mb_convert_encoding($mm, "utf-8", "cp1251");
$bt.="\n‹td›{$mm}‹/td›";
}
$bt.="\n‹/tr›";
}
$bt.="\n‹/table›";
$bt.="\n‹/div›\n";
print $bt;
?›

Если переконвертация не нужна то просто закоментируйте строчку

$mm = mb_convert_encoding($mm, "utf-8", "cp1251");

Приведённый код отлично работает в виде мода для Даннео, всё что нужно что бы сделать из этого кода мод, сохраняем его как файл index.php в папку с названием мода, например prise, и всё это закидываем в папку mod движка. Потом идём в админку и активируем новый мод. Если будете использовать не в виде мода а как отдельный скрипт, можно команду print $bt; заменить на echo $bt; если будут проблемы с работой скрипта. Ну и путь к самому файлу поправте на свой.

Некоторые мои знакомые уже вполне неплохо зарабатывают на собственных интернет магазинах. Правда живут они в очень крупных городах где нет проблем с доставкой (не нужно везти товар за сотни километров что очень сильно влияет на цену). Почему бы и Вам не попробовать? Ведь создание интернет магазинов - это не так уж и дорого. Главное найти свою нишу, товар который будет пользоваться спросом. А я, если решились, помогу запустить интернет магазин на базе одного из самых лучших в этом плане движков - Open Cart, вернее русской сборке OcStore. Стоимость в базовой комплектации от 5000 рублей!

Комментариев: 6 RSS

1 Анатолий 05-07-2011 18:02

Подскажите пожалуйста как использовать этот парсер как отдельный скрипт?

Залил на хост, запускаю price.php, вижу только сам код:

�? $gen = "price.csv"; $f=file_get_contents($gen); $f=split("\n",$f); $bt.="\n�table class=\"price\"�"; foreach ($f as $ff){ $m=split(";",$ff); $bt.="\n�tr�"; foreach($m as $mm){ //$mm = mb_convert_encoding($mm, "utf-8", "cp1251"); $bt.="\n�td�{$mm}�/td�"; } $bt.="\n�/tr�"; } $bt.="\n�/table�"; $bt.="\n�/div�\n"; echo $bt; ?�

И всё. Что же делать?

2 Blogger 06-07-2011 00:03

Код скрипта можно увидеть только если сам скрипт не работает, а это бывает только на хостингах на которых не установлен интерпретатор PHP, типа Narod.ru

3 Виталий 08-09-2011 21:14

А еще если расширение файла со скриптом не PHP-шное. Например index.html...

4 Blogger 08-09-2011 21:41

Обычно в .htaccess всегда ставлю разрешение на исполнение .php для файлов с расширением .hml .html А на некоторых хостингах это настроенно изначально.

5 oleg 12-09-2011 16:38

Привет всем.

Была проблема в кодировке некоторых строк при чтении csv-файла стандартным способом. Наткнулся на Вашу статью при поиске. Попробовал - проблема исчезла. Начал кричать ура.

Но когда попробовал вставить ексельку 40мб весом - скрипт загнулся. пишет бед гейтвей 502

1. поменял форич на фор

2. поменял file_get_contents на file

Все заработало гуд.

Может кому будет полезно, как и мне. Сенкс.

6 Blogger 13-09-2011 00:16

Спасибо за подсказку, кому придётся работать с большими файлами очень пригодится. Я больше чем на 500 кб. не проверял.

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question


Комментарий будет опубликован после проверки

     

  

(обязательно)