can3p: (Default)
2010-12-06 01:11 am
Entry tags:

Импорт utf-8 csv-файлов в Excel

Возникла задача открыть csv экселем, а тот вместо добротного уникода показал мусор. Поиски вывели на тред, где описано приемлемое решение задачи:
1. Конвертируем в UTF-16.
2. Добавляем BOM в начало файла.
3. В качестве разделителей используем символы табуляции.

Если говорить на php, то выдача файла должна происходить следующим образом:

header("Cache-Control: must-revalidate");
header("Pragma: must-revalidate");
header("Content-type: application/vnd.ms-excel; charset=URF-16LE");
header("Content-disposition: attachment; filename=file.csv");
 
echo chr( 0xFF ) . chr( 0xFE ) . mb_convert_encoding( $content, 'UTF-16LE', 'UTF-8' );

Надеюсь, этот пост сэкономит кому-нибудь пару сотен нейронов.


Оригинал: http://blog.dpetroff.ru/tech/excel_csv_unicode
can3p: (Default)
2008-09-10 10:04 pm
Entry tags:

Zend Framework && FirePHP || Я люблю firefox

Обновилось расширение firephp, благодаря этому сделал очень приятное открытие.
Во-первых - обновился Zend Framework, во-вторых там появились родные компоненты для вывода отладочной информации через firebug.

Статья на тему - http://www.christophdorn.com/Blog/2008/09/02/firephp-and-zend-framework-16/

Если кратко, то расширение firephp позволяет выводить сообщения прямо в консоль firephp. Это позволяет избавиться постоянной любви с var_dump и капанием в файле логов. Ценность в таких методах конечно есть, но об удобствах все же говорить не приходится.

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

Расцеловать можно просто людей за такие инструменты. Вместе с Eclipse PDT и будущим Netbeans 6.5 - просто супер
can3p: (Default)
2007-01-30 01:45 am
Entry tags:

ооп в php5

Освежил в памяти часть мануала для php, касающуюся классов в php5, после этого стало понятно, что в объектно-ориентированном стиле я недалеко ушёл от возможностей четвёртой версии. Но что был еще интереснее, так это то, что для части фич из php 5 я не смог придумать вразумительного применения относительно моих текущих скриптов. Как просплюсь, начну раскрывать вопрос.