На одной из наших страниц WordPress мы хотели бы загрузить файл через браузер. Насколько я знаю, это делается путем изменения заголовка, чтобы страница считала, что это файл определенного типа (например, .txt). Тем не менее, как тема, так и десятки плагинов загружаются до загрузки этой страницы, и многие из них выводят какие-то данные или изменяют заголовок таким образом, что я постоянно получаю позорную ошибку заголовка:
Предупреждение: невозможно изменить информацию заголовка - заголовки уже отправлены
(вывод начался в
/home/keep/public_html/wp-content/themes/procyon/header.php:2) в
/home/keep/public_html/wp-content/themes/procyon/functions.php на линии
97
Итак, как я могу обойти тот факт, что другие плагины изменяют информацию заголовка, прежде чем я хотел бы? Конечно, должен быть какой-то способ, так как другие плагины не имеют этой проблемы друг с другом.
Для тех из вас, кто ценит какие-то усилия, вот код, который я использую:
$tmp_handle = fopen('php://memory', 'r+');
foreach ($arr as $fields) {
fputcsv($tmp_handle, $fields);
}
header('Content-type: text/csv');
header('Content-disposition: attachment;filename=MyVerySpecial.csv');
rewind($tmp_handle);
echo stream_get_contents($tmp_handle);
Буду очень признателен за помощь в этом вопросе, спасибо!