• UAH
  • USD
  • RUB
  • EUR
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепропетровск
  • +38(062) 210-24-93  Донецк
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 449-04-21  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 007-72-35  MTC
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

Хостинг. [Решено] При экспорте файла xls с сайта, появляются непонятные символы в конце таблицы. Как исправить?

Форумы Хостинг [Решено] При экспорте файла xls с сайта, появляются непонятные символы в конце таблицы. Как исправить?
toxi
17.05.2016 15:24
хостинг: есть
домен: есть
[Решено] При экспорте файла xls с сайта, появляются непонятные символы в конце таблицы. Как исправить?
Доброго дня.
При экспорте файла xls с сайта, появляются непонятные символы в конце таблицы. Как исправить?
Вопрос написал потому, как на корпоративном сервере точно так же делал экспорт и там все нормально экспортируется.

/* Функция экспорта в xls/csv-файл */
function export_data($filename,$format,$result_filter,$total_rows)
{
                // раcкомментируйте строки ниже, если файл не будет загружаться
                header("Content-Type: application/force-download");
                header("Content-Type: application/octet-stream");
                header("Content-Type: application/download");
               
                //стандартный заголовок, которого обычно хватает
                if($format == "xls"){header('Content-Type: text/x-csv; charset=UTF-8');}
                if($format == "csv"){header('Content-Type: text/csv; charset=UTF-8');}
                #header('Content-Type: application/vnd.ms-excel; charset=windows-1251');
                if($format == "xls"){header("Content-Disposition: attachment;filename=".$filename."_".date("Y-m-d_H-i-s").".xls");}
                if($format == "csv"){header("Content-Disposition: attachment;filename=".$filename."_".date("Y-m-d_H-i-s").".csv");}
               
                header("Content-Transfer-Encoding: binary ");
                /*
                // Теперь можно выводить ранее полученные данные, будь то из MySQL
                // будь то из файла, или же полученные в работе скрипта...
                // Для начала лучше использовать стандартную
                // шапку для HTML страницы под вашу кодировку, к примеру utf-8
                // чтобы корректно отображалась кириллица в EXCEL
                // так же убедитесь что сам файл скрипта установлен в соответствующей
                // кодировке это можно посмотреть в любом PHP редакторе.
                // Итак, шапка страницы:
                */

               
                if($format == "xls"){
                $csv_output ='<!DOCTYPE html>
                <html>
                <head>
                <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
                <meta name="author" content="Roman Pavlovsky" />
                <title>Статистика центра реабилитации - Экспорт данных</title>
                </head>
                <body>'
;

                // Теперь данные в виде таблицы:
                $csv_output .='<table border="1"><tr>
                                                <th align=center style="background-color: #E5EECC;">Всего записей: '
.$total_rows.'</th>
                                                <th align=center style="background-color: #E5EECC;">Адрес статистики центра: '
.$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'].'</th>
                                                </tr></table>'
;
                $csv_output .='<table border="1"><tr><th align=center></th></tr></table>';
                $csv_output .='<table border="1">';
               
                $csv_output .='<tr><th align=center style="background-color: #E5EECC;">ФИО</th>
                                                <th align=center style="background-color: #E5EECC;">Дата рождения</th>
                                                <th align=center style="background-color: #E5EECC;">Город</th>
                                                <th align=center style="background-color: #E5EECC;">Пол</th>
                                                <th align=center style="background-color: #E5EECC;">№ дела</th>
                                                <th align=center style="background-color: #E5EECC;">Центр</th>
                                                <th align=center style="background-color: #E5EECC;">Результат</th>
                                                <th align=center style="background-color: #E5EECC;">Комментарии</th></tr>'
;
               
                while($rows_filter = array($result_filter))
                {
                $csv_output .="<tr><td align=left>".$rows_filter['fio']."</td>
                                                <td align=left>"
.$rows_filter['dtrozdeniya']."</td>
                                                <td align=left>"
.$rows_filter['gorod']."</td>
                                                <td align=left>"
.$rows_filter['pol']."</td>
                                                <td align=left>"
.$rows_filter['id_dela']."</td>
                                                <td align=left>"
.$rows_filter['rebcenter']."</td>
                                                <td align=left>"
.$rows_filter['result']."</td>
                                                <td align=left>"
.$rows_filter['comments']."</td>
                                                </tr>"
;
                }
                                               
                $csv_output .='</table>';
               
                // закрываем тело страницы
                $csv_output .='</body></html>';
                }
               
                if($format == "csv"){
                        $csv_output .="";
                }
                // И наконец выгрузка в EXCEL - что в скрипте как обычный вывод
                echo $csv_output;
                /*
                // браузер выдаст окно на запрос загрузки и сохранения файла.
                // Скрипт готов, пользуйтесь на здоровье !
                // При перепечатке оставляйте ссылку на сайт zapishi.net :)
                */

}
/* Функция экспорта в xls/csv-файл */
Прикрепленные файлы:
eugen
17.05.2016 17:06
хостинг: есть
домен: есть
По скриншотам сложно судить, вероятнее всего, что видимых на втором скриншоте конструкций в самом файле нет. Сравните содержимое файлов в текстовых редакторах типа блокнота или по ssh на хостинге diff'ом

diff -bud 1.xls 2.xls
toxi
17.05.2016 17:33
хостинг: есть
домен: есть
У меня данные считываются из базы и загоняются в псевдофайл, который потом отдается сразу браузеру и нигде не сохраняется,
есть только конечный результирующий файл. Начального файла не существует, чтобы сравнение можно было сделать.
eugen
17.05.2016 17:43
хостинг: есть
домен: есть
Я имею в виду сравнить содержимое файла, который скачан с хостинга с тем, который скачан с сервера, где экспорт проходит нормально
toxi
17.05.2016 17:55
хостинг: есть
домен: есть
Я понял Вас.
Впринципе вопрос решился сам собой. Я залез в базу и нашел точно такие же записи.
Удалил эти записи из базы и экспорт проходит уже нормально, без этих символов в конце таблицы.

Посмотрел по дате добавления записей, видимо другой пользователь либо я пытался загрузить на сайт не csv файл и в результате чего парсер не мог понять, что это за документ и куски документа записал в базу, как данные.

Вопрос решен.
Приношу извинения, если отвлек кого-то от работы.
Участвовать в общении на этом форуме могут только
зарегистрированные пользователи.

Если вы уже зарегистрированы Вам необходимо войти на форум.

Тема закрыта по истечению срока давности.
Горячая линия
(044)
392 74 33
другие города