Я собрал скрипт, который выводит 30-секундный клип файла MP3 на лету. Если вы хотите сохранить файл, один из других вариантов с использованием класса / библиотеки, вероятно, будет лучшим. Но, если вы просто хотите воспроизвести / скачать предварительный просмотр, на лету может быть лучше. Это определенно сэкономит вам место на жестком диске.
Проверьте это на http://www.stephenwalcher.com/2013/06/17/how-to-extract-and-play-part-of-an-mp3-in-php/.
Вот код, но более глубокое объяснение можно найти в моем блоге.
$getID3 = new getID3();
$id3_info = $getID3->analyze($filename);
list($t_min, $t_sec) = explode(':', $id3_info['playtime_string']);
$time = ($t_min * 60) + $t_sec;
$preview = $time / 30; // Preview time of 30 seconds
$handle = fopen($filename, 'r');
$content = fread($handle, filesize($filename));
$length = strlen($content);
if (!$session->IsLoggedIn()) {
$length = round(strlen($content) / $preview);
$content = substr($content, $length / 3 /* Start extraction ~10 seconds in */, $length);
}
header("Content-Type: {$id3_info['mime_type']}");
header("Content-Length: {$length}");
print $content;