Мы используем 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  Vodafone
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

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


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

Доброго дня.
При экспорте файла xls с сайта, появляются непонятные символы в конце таблицы. Как исправить?
Вопрос написал потому, как на корпоративном сервере точно так же делал экспорт и там все нормально экспортируется.
<div class='forum-code'><div class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">/* Функция экспорта в xls/csv-файл */</span><br /><span style="color: #000000; font-weight: bold;">function</span> export_data<span style="color: #009900;">(</span><span style="color: #000088;">$filename</span><span style="color: #339933;">,</span><span style="color: #000088;">$format</span><span style="color: #339933;">,</span><span style="color: #000088;">$result_filter</span><span style="color: #339933;">,</span><span style="color: #000088;">$total_rows</span><span style="color: #009900;">)</span><br /><span style="color: #009900;">{</span><br />                <span style="color: #666666; font-style: italic;">// раcкомментируйте строки ниже, если файл не будет загружаться</span><br />                <a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">"Content-Type: application/force-download"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br />                <a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">"Content-Type: application/octet-stream"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br />                <a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">"Content-Type: application/download"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br />                <br />                <span style="color: #666666; font-style: italic;">//стандартный заголовок, которого обычно хватает</span><br />                <span style="color: #b1b100;">if</span><span style="color: #009900;">(</span><span style="color: #000088;">$format</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">"xls"</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span><a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">'Content-Type: text/x-csv; charset=UTF-8'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><span style="color: #009900;">}</span><br />                <span style="color: #b1b100;">if</span><span style="color: #009900;">(</span><span style="color: #000088;">$format</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">"csv"</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span><a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">'Content-Type: text/csv; charset=UTF-8'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><span style="color: #009900;">}</span><br />                <span style="color: #666666; font-style: italic;">#header('Content-Type: application/vnd.ms-excel; charset=windows-1251');<br /></span>                <span style="color: #b1b100;">if</span><span style="color: #009900;">(</span><span style="color: #000088;">$format</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">"xls"</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span><a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">"Content-Disposition: attachment;filename="</span><span style="color: #339933;">.</span><span style="color: #000088;">$filename</span><span style="color: #339933;">.</span><span style="color: #0000ff;">"_"</span><span style="color: #339933;">.</span><a href="http://www.php.net/date"><span style="color: #990000;">date</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">"Y-m-d_H-i-s"</span><span style="color: #009900;">)</span><span style="color: #339933;">.</span><span style="color: #0000ff;">".xls"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><span style="color: #009900;">}</span><br />                <span style="color: #b1b100;">if</span><span style="color: #009900;">(</span><span style="color: #000088;">$format</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">"csv"</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span><a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">"Content-Disposition: attachment;filename="</span><span style="color: #339933;">.</span><span style="color: #000088;">$filename</span><span style="color: #339933;">.</span><span style="color: #0000ff;">"_"</span><span style="color: #339933;">.</span><a href="http://www.php.net/date"><span style="color: #990000;">date</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">"Y-m-d_H-i-s"</span><span style="color: #009900;">)</span><span style="color: #339933;">.</span><span style="color: #0000ff;">".csv"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><span style="color: #009900;">}</span><br />                <br />                <a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">"Content-Transfer-Encoding: binary "</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br />                <span style="color: #666666; font-style: italic;">/*<br />                // Теперь можно выводить ранее полученные данные, будь то из MySQL<br />                // будь то из файла, или же полученные в работе скрипта...<br />                // Для начала лучше использовать стандартную<br />                // шапку для HTML страницы под вашу кодировку, к примеру utf-8<br />                // чтобы корректно отображалась кириллица в EXCEL<br />                // так же убедитесь что сам файл скрипта установлен в соответствующей<br />                // кодировке это можно посмотреть в любом PHP редакторе.<br />                // Итак, шапка страницы:<br />                */</span><br />                <br />                <span style="color: #b1b100;">if</span><span style="color: #009900;">(</span><span style="color: #000088;">$format</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">"xls"</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span><br />                <span style="color: #000088;">$csv_output</span> <span style="color: #339933;">=</span><span style="color: #0000ff;">'<!DOCTYPE html><br />                <html><br />                <head><br />                <meta http-equiv="content-type" content="text/html; charset=UTF-8" /><br />                <meta name="author" content="Roman Pavlovsky" /><br />                <title>Статистика центра реабилитации - Экспорт данных</title><br />                </head><br />                <body>'</span><span style="color: #339933;">;</span><br /><br />                <span style="color: #666666; font-style: italic;">// Теперь данные в виде таблицы:</span><br />                <span style="color: #000088;">$csv_output</span> <span style="color: #339933;">.=</span><span style="color: #0000ff;">'<table border="1"><tr><br />                                                <th align=center style="background-color: #E5EECC;">Всего записей: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$total_rows</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'</th><br />                                                <th align=center style="background-color: #E5EECC;">Адрес статистики центра: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'SERVER_NAME'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'SCRIPT_NAME'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'</th><br />                                                </tr></table>'</span><span style="color: #339933;">;</span><br />                <span style="color: #000088;">$csv_output</span> <span style="color: #339933;">.=</span><span style="color: #0000ff;">'<table border="1"><tr><th align=center></th></tr></table>'</span><span style="color: #339933;">;</span><br />                <span style="color: #000088;">$csv_output</span> <span style="color: #339933;">.=</span><span style="color: #0000ff;">'<table border="1">'</span><span style="color: #339933;">;</span><br />                <br />                <span style="color: #000088;">$csv_output</span> <span style="color: #339933;">.=</span><span style="color: #0000ff;">'<tr><th align=center style="background-color: #E5EECC;">ФИО</th><br />                                                <th align=center style="background-color: #E5EECC;">Дата рождения</th><br />                                                <th align=center style="background-color: #E5EECC;">Город</th><br />                                                <th align=center style="background-color: #E5EECC;">Пол</th><br />                                                <th align=center style="background-color: #E5EECC;">№ дела</th><br />                                                <th align=center style="background-color: #E5EECC;">Центр</th><br />                                                <th align=center style="background-color: #E5EECC;">Результат</th><br />                                                <th align=center style="background-color: #E5EECC;">Комментарии</th></tr>'</span><span style="color: #339933;">;</span><br />                <br />                <span style="color: #b1b100;">while</span><span style="color: #009900;">(</span><span style="color: #000088;">$rows_filter</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">(</span><span style="color: #000088;">$result_filter</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><br />                <span style="color: #009900;">{</span><br />                <span style="color: #000088;">$csv_output</span> <span style="color: #339933;">.=</span><span style="color: #0000ff;">"<tr><td align=left>"</span><span style="color: #339933;">.</span><span style="color: #000088;">$rows_filter</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'fio'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">"</td><br />                                                <td align=left>"</span><span style="color: #339933;">.</span><span style="color: #000088;">$rows_filter</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'dtrozdeniya'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">"</td><br />                                                <td align=left>"</span><span style="color: #339933;">.</span><span style="color: #000088;">$rows_filter</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'gorod'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">"</td><br />                                                <td align=left>"</span><span style="color: #339933;">.</span><span style="color: #000088;">$rows_filter</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'pol'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">"</td><br />                                                <td align=left>"</span><span style="color: #339933;">.</span><span style="color: #000088;">$rows_filter</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'id_dela'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">"</td><br />                                                <td align=left>"</span><span style="color: #339933;">.</span><span style="color: #000088;">$rows_filter</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'rebcenter'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">"</td><br />                                                <td align=left>"</span><span style="color: #339933;">.</span><span style="color: #000088;">$rows_filter</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'result'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">"</td><br />                                                <td align=left>"</span><span style="color: #339933;">.</span><span style="color: #000088;">$rows_filter</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'comments'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">"</td><br />                                                </tr>"</span><span style="color: #339933;">;</span><br />                <span style="color: #009900;">}</span><br />                                                <br />                <span style="color: #000088;">$csv_output</span> <span style="color: #339933;">.=</span><span style="color: #0000ff;">'</table>'</span><span style="color: #339933;">;</span><br />                <br />                <span style="color: #666666; font-style: italic;">// закрываем тело страницы</span><br />                <span style="color: #000088;">$csv_output</span> <span style="color: #339933;">.=</span><span style="color: #0000ff;">'</body></html>'</span><span style="color: #339933;">;</span><br />                <span style="color: #009900;">}</span><br />                <br />                <span style="color: #b1b100;">if</span><span style="color: #009900;">(</span><span style="color: #000088;">$format</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">"csv"</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span><br />                        <span style="color: #000088;">$csv_output</span> <span style="color: #339933;">.=</span><span style="color: #0000ff;">""</span><span style="color: #339933;">;</span><br />                <span style="color: #009900;">}</span><br />                <span style="color: #666666; font-style: italic;">// И наконец выгрузка в EXCEL - что в скрипте как обычный вывод</span><br />                <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$csv_output</span><span style="color: #339933;">;</span><br />                <span style="color: #666666; font-style: italic;">/*<br />                // браузер выдаст окно на запрос загрузки и сохранения файла.<br />                // Скрипт готов, пользуйтесь на здоровье !<br />                // При перепечатке оставляйте ссылку на сайт zapishi.net :)<br />                */</span><br /><span style="color: #009900;">}</span><br /><span style="color: #666666; font-style: italic;">/* Функция экспорта в xls/csv-файл */</span></div></div>

eugen
4 года
0

По скриншотам сложно судить, вероятнее всего, что видимых на втором скриншоте конструкций в самом файле нет. Сравните содержимое файлов в текстовых редакторах типа блокнота или по ssh на хостинге diff'ом

diff -bud 1.xls 2.xls

toxi
4 года
0

У меня данные считываются из базы и загоняются в псевдофайл, который потом отдается сразу браузеру и нигде не сохраняется,
есть только конечный результирующий файл. Начального файла не существует, чтобы сравнение можно было сделать.

eugen
4 года
0

Я имею в виду сравнить содержимое файла, который скачан с хостинга с тем, который скачан с сервера, где экспорт проходит нормально

toxi
4 года
0

Я понял Вас.
Впринципе вопрос решился сам собой. Я залез в базу и нашел точно такие же записи.
Удалил эти записи из базы и экспорт проходит уже нормально, без этих символов в конце таблицы.
Посмотрел по дате добавления записей, видимо другой пользователь либо я пытался загрузить на сайт не csv файл и в результате чего парсер не мог понять, что это за документ и куски документа записал в базу, как данные.
Вопрос решен.
Приношу извинения, если отвлек кого-то от работы.

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