 #1.
            TLENS
                                                Off
                        #1.
            TLENS
                                                Off
                
                                                    (14)
                                                            
                        Moderator
                        2016.04.16 16:04
                                                
                                                        
 
                Пытаюсь выкачать часть файла и вытащить с mp3 обложку если она есть. Но никак не могу определить сколько данных мне нужно выкачать с удаленного файла. Так как файлы есть с разным размером тегов. бывает и по 200кб попадаются. 
Придумал следующий костыль не знаю насколько он будет правильным но вроде норм работает.
Код:
| span style="color: #0000BB"><?phpinclude_once '../start.php';require_once('../include/getid3/getid3.php'); function getMp3Info ( $url ){    if($url){                        $t = microtime(true);        $tmpname = tempnam('/tmp6','getid3');                $tmp = fopen($tmpname, 'wb');        if (!$tmp)            return -1;                $source = fopen($url, 'rb');        if (!$source) {            fclose($tmp);            unlink($tmpname);            return -2;        }                $startRead = 32*1024;                        $lastbites = $startRead;        while($lastbites > 0 && !feof($tmp) && $frame = fread($source, $lastbites)) {            fwrite($tmp, $frame);            $lastbites -= strlen($frame);        }        $getID3 = new getID3;        $getID3->analyze($tmpname);                if (@$getID3->info['id3v2']['tag_offset_end'] > 0 && $getID3->info['id3v2']['tag_offset_end'] > $startRead) {            $lastbites = intval($getID3->info['id3v2']['tag_offset_start']) + $getID3->info['id3v2']['tag_offset_end'] - $startRead;            while($lastbites > 0 && !feof($tmp) && $frame = fread($source, $lastbites)) {                fwrite($tmp, $frame);                $lastbites -= strlen($frame);            }                        fwrite($tmp, $frame);        }                $getID3 = new getID3;        $getID3->analyze($tmpname);        fclose($tmp);        fclose($source);        unlink($tmpname);        echo microtime(true) - $t;        return $getID3->info;            } } | 
Интересно есть ли альтернативы. Все в нете перерыл везде непонятно откуда берут то 32 кб то 45.