per i files OGG (l'avevo trovato in phpfreacks.com ma ora non trovo l'url esatto, quindi lo posto direttamente):
Codice PHP:
/*
Takes a single string which contains the path to the .OGG file which to extract the info.
Example: "/path/to/file.ogg"
It returns an associative array containing whatever information was
gathered. If the array contains only size, name, path then this
file contained no user comment fields.
*/
function ogg_info($filename) {
$fp = fopen( $filename, "r" );
$info = array();
$info['size'] = filesize( $filename );
$info['name'] = basename( $filename );
$info['path'] = dirname( $filename );
$done = false;
while( $done == false ) {
$working = fread( $fp, 1 );
if( $working == "l" ) {
$working .= fread( $fp, 8 );
if( $working == "libVorbis" ) {
$done = true;
}
}
}
while( ord( $working ) > 31 ) {
$working = fread( $fp, 1 );
}
$tag = "";
while( $tag != "done" ) {
$working = "";
while( ( $working != "=" ) && ( $tag != "done" ) ) {
if( ord( $working ) > 31 ) {
$tag .= $working;
}
$working = fread( $fp, 1 );
if( $tag == "v" ) {
$tag .= "o".fread( $fp, 9 );
if( ( substr_count( $tag, "vorbis" ) == 1 ) && ( substr_count( $tag, "BCV" ) == 1 ) ) {
$tag = "done";
} else {
fseek( $fp, ( ftell( $fp ) - 10 ) );
}
}
}
if( $tag != "done" ) {
$working = fread( $fp, 1 );
while( ord( $working ) > 31 ) {
$title .= $working;
$working = fread( $fp, 1 );
}
$info[$tag] = $title;
$tag = "";
$title = "";
}
}
fclose( $fp );
return $info;
}