У меня в админке есть кнопка для экспорта данных из БД в Excel. И на локальной машине (Denwer) все работает отлично.
Но на хостинге выдает ошибку:
Allowed memory size of 67108864 bytes exhausted (tried to allocate 71 bytes)
Подскажите это особенность PHPExce или все таки в моем корявом коде
П.С.: После выгрузки на локальной машине файл весит менее 2 мб
mysql_query('SET character_set_database = utf8');
mysql_query('SET NAMES utf8');
$validLocale = PHPExcel_Settings::setLocale('ru');
$xls = new PHPExcel();
$xls->setActiveSheetIndex(0);
$sheet = $xls->getActiveSheet();
$sheet->setTitle('Каталог Предприятий');
$sheet->setCellValue("A1", 'Каталог Предприятий');
$sheet->getStyle('A1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$sheet->getStyle('A1')->getFill()->getStartColor()->setRGB('EEEEEE');
$sheet->mergeCells('A1:E1');
$sheet->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_ CENTER);
$query = mysql_query("SELECT * FROM ".TABLE_USER." WHERE `u_type`!=0 ORDER BY `u_id` ");
$j = 2;
while ($row = mysql_fetch_assoc($query)){
$j++;
$i=0;
foreach ($row as $key=>$value){
if ($key == 'u_email_verify_code') {continue;}
if ($key == 'u_mobile_key') {continue;}
if ($key == 'u_session_id') {continue;}
if ($key == 'u_mail_exchange_active') {continue;}
if ($key == 'u_logo_path') {continue;}
if ($j == 3) {
$sheet->setCellValueByColumnAndRow($i, $j, $key);
}
if ($key == 'u_city') {$value = city($value);}
$value = trim($value);
if ($key == 'u_comp_rub' and $value != "" ) {
$value = listOfRyb ($value, $cfg_comp_rubrics);
}
$sheet->setCellValueByColumnAndRow($i, $j+1, $value);
$i++;
}
}
header ( "Expires: Mon, 1 Apr 1974 05:00:00 GMT" );
header ( "Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT" );
header ( "Cache-Control: no-cache, must-revalidate" );
header ( "Pragma: no-cache" );
header ( "Content-type: application/vnd.ms-excel" );
header ( "Content-Disposition: attachment; filename=catalog.xls" );
$objWriter = new PHPExcel_Writer_Excel5($xls);
$objWriter->save('php://output');
mysql_query("SET CHARACTER SET cp1251");
mysql_query("SET NAMES cp1251");