Php while循环中的函数调用中设置的头文件只进行一次

Php while循环中的函数调用中设置的头文件只进行一次,php,html,while-loop,Php,Html,While Loop,我从PHP调用了一个函数,但在第一次运行后它就停止了 while ($rowfight = $resultfights->fetch_assoc()) { // .. merge($file1, $file2, $filename_result, $rowfight['team1Name'], $rowfight['team2Name'], $rowfight['description'], '' ); // .. } function merge($filena

我从PHP调用了一个函数,但在第一次运行后它就停止了

while ($rowfight = $resultfights->fetch_assoc()) {
    // ..
    merge($file1, $file2, $filename_result, $rowfight['team1Name'], $rowfight['team2Name'], $rowfight['description'], '' );
    // ..
}

function merge($filename_x, $filename_y, $filename_result, $team1, $team2, $battle, $winner ) {
    // Do some stuff with image here
    // ..
    header('Content-Type: image/png');
    header('Content-Disposition: attachment; filename='.basename($filename_result));
    imagepng($image);
    // ..
}

它下载第一张
.png
图像,然后停止

怎么办?

(我知道它有标题,但我不知道是什么)

解决方案

我使用了Dropbox api,在创建之后不久,我的硬盘上就有了文件


一旦生成输出,就不能添加标题,除非使用输出缓冲。我确实尝试过ob_start(merge(…);ob_end_flush具有相同的结果另外,如果在一个HTTP响应中发送多个类似的头和多个PNG流,您认为会发生什么情况?好吧,不能说:-)我有X行,每个行需要创建一个PNG,并将其下载到我的硬盘。你说的是,我做不到吗?不,HTTP被设计为每个请求处理一个文件。您可以将所有PNG图像合并到一个ZIP文件中,并提供该ZIP供下载。