Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Extensions > Проблема с PEAR::Spreadsheet_Excel_Writer


Автор: DiMoN_TD 10.2.2009, 13:58
Итак.. сервак стоит на FreeBSD. Поставил библиотеку PEAR::Spreadsheet_Excel_Writer
Все пути прописал, все нормально вроде бы. Написал простейший код:

Код

<?
// Внедрение PEAR::Spreadsheet_Excel_Writer 
require_once "/usr/local/share/pear/Spreadsheet/Excel/Writer.php"; 

// Создание случая 
$xls =& new Spreadsheet_Excel_Writer(); 

// Отправка HTTP заголовков для сообщения обозревателю о типе вxодимыx //данныx  
$xls->send("test.xls"); 

// Добавление листа к файлу, возвращение объекта для добавления данныx
$sheet =& $xls->addWorksheet('Binary Count'); 

// Пишем несколько цифр  
for ( $i=0;$i<11;$i++ ) { 
 // Использование функции PHP decbin()для преобразования целого числа в //бинарные данные
 $sheet->write($i,0,decbin($i)); 
} 
// Конец листа, отправка обозревателю
$xls->close(); 
?>


По идее мне должно было вывестись числа от 1 до 10 в excel-файле. Я загружаю скрипт, браузер мне предлагает сохранить файл test.xls, я соглашаюсь, открываю файл и.. обана, предупреждение:

"The file you are trying to open, 'test.xls', is in a different format than specified by the file extension. Verify that the file is not corrupted and is from a trusted source before opening the file. Do you want to open file now?"

Ну я соглашаюсь и мне выдается вот такой текст:

\РПаЎ±б;юя    юяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя        
            
юяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя    l    ЙBд Binary Count=ј%r8X"1ИяђArial1ИяђArial1ИяђArial1ИяђArial1ИяђArial1И ђArialахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А ахя А а А а А “Ђя’в8яяяяяяяяяяяяЂЂЂЂЂЂЂЂЂАААЂЂЂ™™я™3fяяММяяffяЂЂfМММяЂяяяяяяЂЂЂЂЂяМяМяяМяМяя™™Мяя™ММ™яяМ™3fя3ММ™МяМя™яfff™–––3f3™f333™3™3f33™333…3 Binary Count    
    l    Й*+Ђ‚ЃБѓ„&и?'и?(р?)р?Ў"dXXа?а?    
р?$@&@Y@@Y@Ђ[@А[@@Џ@    HЏ@        
ђЏ@>            
¶            
Root Entryяяяяяяяя    АFЂХе    }‹ЙЂХе    }‹ЙBook
яяяяяяяяяяяя    АFФюяяяюяяяюяяяэяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя        


Что это за хрень и как с ней бороться?

Уже перепробовал все варианты с кодировкой.. Родная кодировка у меня utf-8

Автор: DiMoN_TD 10.2.2009, 15:49
Попробовал посмотреть что в логах творится, заметил вот такую вещь:

PHP Warning:  Cannot modify header information - headers already sent by (output started at /usr/local/share/pear/Console/Getopt.php:1) in /usr/local/share/pear/Spreadsheet/Excel/Writer.php on line 67
PHP Warning:  Cannot modify header information - headers already sent by (output started at /usr/local/share/pear/Console/Getopt.php:1) in /usr/local/share/pear/Spreadsheet/Excel/Writer.php on line 68
PHP Warning:  Cannot modify header information - headers already sent by (output started at /usr/local/share/pear/Console/Getopt.php:1) in /usr/local/share/pear/Spreadsheet/Excel/Writer.php on line 69
PHP Warning:  Cannot modify header information - headers already sent by (output started at /usr/local/share/pear/Console/Getopt.php:1) in /usr/local/share/pear/Spreadsheet/Excel/Writer.php on line 70
PHP Warning:  Cannot modify header information - headers already sent by (output started at /usr/local/share/pear/Console/Getopt.php:1) in /usr/local/share/pear/Spreadsheet/Excel/Writer.php on line 71

Автор: enof 10.2.2009, 15:55
DiMoN_TD, 
А эту вещь прочитать не пробовали?
Почитайте rfc2616, увлекательнейший рассказ.Заголовки должны быть отправлены до любого вывода в браузер.

Автор: DiMoN_TD 10.2.2009, 17:32
Каким-то боком действительно в этом файле /usr/local/share/pear/Console/Getopt.php первым символом закралась "\"

Спасибо.. теперь и xls файл нормально формируется..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)