如何解决PHP 在生产中打开一个带有奇怪字符的页面,而不是下载 excel 文件相同的代码在本地主机上运行良好
enter image description here 此代码应该下载一个 excel 文件,但它在浏览器中打开了一个带有奇怪字符的页面。
这只发生在生产环境中,当上传到 siteground.com 上的服务器时,但在 localhost 上它运行良好。
我使用 phpSpreadsheed,但如果我使用普通的 PHP,它也会做同样的事情。
您对如何使其在生产中发挥作用有什么想法吗?
<?php
include '../../vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Helper\Sample;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$sql = "SELECT * FROM reserve_tickets";
$result = $connection->query($sql);
$write_array = array();
$fileName = "excel.xlsx";
$write_array[] = array("id","name","address");
if($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
$write_array[] = array($row["company_name"],$row["matchmacking_options"],$row["participant_name"]);
}
}
$connection->close();
$spreadsheet = new Spreadsheet();
$spreadsheet->setActiveSheetIndex(0);
$spreadsheet->getActiveSheet()->fromArray($write_array,NULL,'A1');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$fileName.'"');
header('Cache-Control: max-age=0');
header('Cache-Control: max-age=1');
header('Expires: Mon,26 Jul 1997 05:00:00 GMT');
header('Last-Modified: ' . gmdate('D,d M Y H:i:s') . ' GMT');
header('Cache-Control: cache,must-revalidate');
header('Pragma: public');
ob_end_clean();
$writer = IOFactory::createWriter($spreadsheet,'Xlsx');
$writer->save('php://output');
exit();
?>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。