Я хочу загрузить csv на странице администратора WordPress, он отлично работает на локальном сервере, но в реальном времени он выдает уже отправленную ошибку заголовка.

The code for download that works at localhost is but live at hostgather server it throughs error 


ob_get_clean();
    header("Content-type: text/x-csv"); # DECLARING FILE TYPE
    header("Content-Transfer-Encoding: binary");
    header("Content-Disposition: attachment; filename=".$csv_file_name); # EXPORT GENERATED CSV FILE
    header("Pragma: no-cache");
    header("Expires: 0");

    echo $fields;
    exit;

Ошибка

Предупреждение: нельзя изменить информацию заголовка — заголовки уже отправлены (вывод начался в /home/londoner/public_html/pkfones.com/pinquest/wp-admin/includes/template.php:1679) в /home/londoner/public_html/pkfones. com/pinquest/wp-content/plugins/wp-gamesize/setgamesize_admin.php в строке 131


person zalmai    schedule 09.11.2012    source источник
comment
Что ж, боюсь, вам придется сообщить, что на самом деле содержат эти строки, упомянутые в сообщении об ошибке. Для этого и предназначено сообщение об ошибке: оно точно показывает, какая строка вызывает отправку вывода.   -  person arkascha    schedule 09.11.2012
comment


Ответы (1)


Убедитесь, что вы вызываете ob_start() в начале (или очень близко) выполнения вашего кода. Это буферизует весь ваш вывод и позволит вам отправлять заголовки в любое время. Вероятно, вы можете просто разместить это в самом верху вашего functions.php.

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

person Jon    schedule 16.06.2014