Felix Riesterer: PHP - Dateinamen mit Variable schreiben

Beitrag lesen

Lieber pl,

Der macht das ja auch viel zu umständlich.

my @mp3s = <*.mp3>;
my $outbin = '';
foreach my $mp3( @mp3s ){
    ...
    $outbin .= $buffer;
}

chdir "out" or die $^E;
my $fh = IO::File->new;
$fh->open(join('', @mp3s), O_CREAT|O_BINARY|O_RDWR) or die $!;    
$fh->print($outbin);
$fh->close;

hmm. Wenn es nur um ein simples Konkatenieren von Binärdaten geht, dann hat man in PHP eine noch kürzere Möglichkeit:

header('Content-Type: audio/x-mpeg3');

foreach (glob("$dir/*.mp3") as $f) {
    readfile($f); // direct output to browser
}

Allerdings fehlt da noch die Sache mit Content-Length und so weiter...

Mir ist es da viel lieber, die Tag-Informationen aller Dateien würden vor dem Konkatenieren entfernt, damit die Ergebnisdatei wenigstens einigermaßen einem standardisierten Format entspricht (man kann deren Meta-Informationen in einer aufwendigeren Klasse wieder ergänzen). Wenn ich mir z.B. sicher sein kann, dass alle Parameter (wie z.B. die Sample-Rate) in allen Dateien gleich sind, dann hätte ich da wesentlich weniger Bauchschmerzen, als wenn ich "irgendwelche" mp3-Dateien einfach als binären Stream zum Browser sende.

Liebe Grüße,

Felix Riesterer.