php:压缩csv在本地主机(xampp)上有效,但在生产服务器上无效
我有这个php:压缩csv在本地主机(xampp)上有效,但在生产服务器上无效,php,csv,Php,Csv,我有这个php函数: function get_partij_download_new($dbmi, $partij) { set_time_limit(0); $stmt = $dbmi->prepare("CALL spStartPartijDownload(?)"); $stmt->bind_param('i', $partij); $stmt->execute(); $result = $stmt->get_re
php
函数:
function get_partij_download_new($dbmi, $partij) {
set_time_limit(0);
$stmt = $dbmi->prepare("CALL spStartPartijDownload(?)");
$stmt->bind_param('i', $partij);
$stmt->execute();
$result = $stmt->get_result();
$headers = array('id', 'zorgverlener', 'zorgverlener_type', 'jaar', 'id_contractpartij', 'contractpartij',
'dc_code', 'dc_oms', 'tt_oms', 'zp_code', 'zp_oms', 'zpg_oms', 'tarief');
$fp = fopen('php://temp/maxmemory:999999999999', 'w');
if ($fp && $result) {
$zipname = 'export_tarvieven_contractpartij.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
fputcsv($fp, $headers, ";");
while($row = $result->fetch_assoc()) {
fputcsv($fp, $row, ";");
}
rewind($fp);
$zip->addFromString('export_tarieven.csv', stream_get_contents($fp) );
fclose($fp);
$zip->close();
}
$stmt->close();
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$zipname);
header('Content-Length: ' . filesize($zipname));
readfile($zipname);
unlink($zipname);
}
当我在本地主机(xampp版本5.6.19)上运行此程序时,它工作正常,并为我提供一个包含预期的csv
文件的zip文件。当我在生产服务器上运行完全相同的函数(php
version>7)时,它仍然会创建zip文件,但zip不包含csv
,它是空的
有什么想法吗?这可能是一个记忆问题。尝试使用
php://temp
无maxmemory
:
$fp = fopen('php://temp', 'w');