Ich hab ein PHP-Script für ein dynamisch generiertes download File ohne Zwischenspeichern auf dem Server:
Das dynamische File wird per .= String Concatenation aus einzelnen Files vom Server (welche in Variablen gelesen wurden) zusammengesetzt.
Problem: Insgesamt werden ca. 20 Stücke zusammengefügt, 7 sind ca. 1MB groß, eine Datei ist 30MB groß, und der Rest sind einzelne Bytes. Das Script dauert teilweise mehr als 20 Sek, verursacht durch das 30MB Stück.
Frage: Wie kann ich es schneller zusammenfügen?
Danke für eure Hilfe!
Das dynamische File wird per .= String Concatenation aus einzelnen Files vom Server (welche in Variablen gelesen wurden) zusammengesetzt.
Problem: Insgesamt werden ca. 20 Stücke zusammengefügt, 7 sind ca. 1MB groß, eine Datei ist 30MB groß, und der Rest sind einzelne Bytes. Das Script dauert teilweise mehr als 20 Sek, verursacht durch das 30MB Stück.
Frage: Wie kann ich es schneller zusammenfügen?
PHP-Code:
$download = $download . pack("L",$startdata*1);
foreach ($myfiles as $myfiles_name => $myfiles_value)
{
$download = $download. pack("L",$filesize[$myfiles_name]);
$somebytes = $something;
$download = $download. pack("L",$somebytes);
$download = $download . $myfiles[$myfiles_name];
}
// Download senden
header("Content-Type: application/octet-stream");
$save_as_name = "download.bck";
header("Content-Disposition: attachment; filename=\"$save_as_name\"");
echo $download;
Kommentar