Мы используем cookie-файлы
Для оптимизации работы нашего сайта мы используем cookie-файлы. Продолжая использовать сайт, Вы соглашаетесь с использованием cookie-файлов.
  • UAH
  • USD
  • RUB
  • EUR
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепр
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 170-15-42  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 630-90-82  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
хостинг: есть
домен: есть
[Решено] При экспорте файла 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
хостинг: есть
домен: есть
По скриншотам сложно судить, вероятнее всего, что видимых на втором скриншоте конструкций в самом файле нет. Сравните содержимое файлов в текстовых редакторах типа блокнота или по ssh на хостинге diff'ом

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

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

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

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

Горячая линия
(044)
392 74 33
другие города