Ответы пользователя по тегу PostgreSQL
  • Почему проблемы с кодировкой при переносе на другой сервер?

    svisch
    @svisch Автор вопроса
    Нашел решение в виде ob_end_clean(); перед установкой заголовков.
    До конца еще не разобрался, но до этого с выводом происходили странные вещи. Дебажил код и база оказалась вообще не при чем. Вручную прописывал ячейки таблицы и одно слово на русском отрабатывало удачно, в то время как другое в этой же ячейке не отображалось. Связи не выявил.
    Если кто объяснит почему ob_end_clean() помогло, буду благодарен. Ниже привожу рабочий код. Лишнее поубирал.
    require_once __DIR__ . '/../phpexcel/Classes/PHPExcel.php';
    require_once(__DIR__ . '/../phpexcel/Classes/PHPExcel/Writer/Excel5.php');
    
    $xls = new \PHPExcel();
    $xls->setActiveSheetIndex(0);
    
    $sheet = $xls->getActiveSheet();
    
    $sheet->setCellValue("A1", 'Тест1');
    $sheet->setCellValue("B1", 'Тест2');
    $sheet->setCellValue("C1", 'Тест3');
    $sheet->setCellValue("D1", 'Тест4');
    $sheet->setCellValue("E1", 'Тест5');
    $sheet->setCellValue("F1", 'Тест6');
    $sheet->setCellValue("G1", 'Тест7');
    $sheet->setCellValue("H1", 'Тест8');
    
    ob_end_clean();
    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=test.xls" );
           
     $objWriter = new \PHPExcel_Writer_Excel5($xls);
     $objWriter->save('php://output');


    До появления в коде ob_end_clean() генерируемый excel файл то был пустым, то с текстом в ячейках, но при указании кодировки mb internal encoding("UTF-8") в начале кода.
    Ответ написан
    Комментировать