getid3
을 사용하여 원격 URL에서 파일 크기와 지속 시간을 가져옵니다. getid3
은 원격 URL에서 작동하지 않으므로 임시 위치로 mp3을 다운로드하고 데이터를 읽은 다음 삭제하십시오.getid3 : 원격 서버에서 전체 mp3 데이터를 다운로드하십시오.
코드 :
<?php $filename = tempnam('/tmp','getid3');
if (file_put_contents($filename,file_get_contents('http://feeds.soundcloud.com/stream/336401044-scott-johnson-27-tms-1314-pm.mp3', false, null, 0, 32768))) {
if (require_once('id3/getid3.php')) {
$getID3 = new getID3;
$ThisFileInfo = $getID3->analyze($filename);
echo '<pre>'.print_r($ThisFileInfo, true).'</pre>';
}
unlink($filename);
};?>
내가 가진
내 문제는 그것은 단지 MP3 파일의 첫 번째 32,768킬로바이트를 다운로드하고 또는 정확한 시간 기간 (최대 32768로 방송) 정확한 파일 크기를 표시하지 않는다는 것입니다 파일의 최대 크기를 늘리면 코드가 충돌합니다.
전체 mp3를 다운로드하거나 전체 파일을 다운로드하지 않고 적절한 헤더 크기를 얻는 방법을 찾을 수 있습니까?
어떤 버전의 ID3을 얻으려고하십니까? 32KB 이상은 필요하지만 그 이상은 아닙니다. 코드가 32K 이상으로 충돌하는 이유는 무엇입니까? 나는'file_get_contents'에 대해 cURL을 사용할 것이고, 잘 작동하는 서버로부터 범위 요청을 할 수 있습니다. – Brad
최신 버전 (1.9.5) 및 올바른 파일 크기 및 시간을 얻기 위해 20MB를 사용해야합니다. 나는 cURL에 익숙하지 않으므로 예제를 제공 할 수 있습니까? –
http://php.net/manual/en/curl.examples-basic.php – Brad