Exemplo n.º 1
0
function CommonFooter()
{
    foreach (array('iconv', 'zlib', 'exif', 'mysql', 'dba') as $ext) {
        $support[] = (extension_loaded($ext) ? '+' : '-') . $ext;
    }
    echo xml_gen::br();
    echo xml_gen::p('getID3() ' . getid3::VERSION . '.<br>PHP ' . phpversion() . ' (' . implode(xml_gen::space(2), $support) . ').');
    echo xml_gen::p(xml_gen::a('http://getid3.sourceforge.net/', 'http://getid3.sourceforge.net'));
    echo '</body></html>';
}
Exemplo n.º 2
0
 /**
  * Generate XML for error paragraph.
  */
 public static function p_err($text)
 {
     if (is_array($text)) {
         $text = implode("<br>", $text);
     }
     return xml_gen::p($text, "class='error'");
 }
Exemplo n.º 3
0
function AnalyzeDirectory()
{
    global $audio_path, $dbh;
    // Scan $audio_path
    try {
        // Build array containing filenames
        $files = array();
        ScanDirectory($audio_path, $files);
        // Initialize getID3 engine
        $getid3 = new getID3();
        $getid3->encoding = 'UTF-8';
        $getid3->option_md5_data = true;
        $getid3->option_md5_data_source = true;
        // Scan all files
        foreach ($files as $filename => $name) {
            try {
                $getid3->Analyze($filename);
                if (!@$getid3->info['audio']) {
                    xml_gen::p($name . ' skipped - not an audio file.');
                    continue;
                }
                // Extract data
                $filemtime = filemtime($filename);
                $filesize = filesize($filename);
                $filename_sls = addslashes(utf8_encode($filename));
                $format_name = @$getid3->info['fileformat'] . (@$getid3->info['audio']['dataformat'] != @$getid3->info['fileformat'] ? '/' . @$getid3->info['audio']['dataformat'] : '');
                $format_name_id = Lookup($format_name, 'format_name');
                $encoder_version_id = Lookup(@$getid3->info['audio']['encoder'], 'encoder_version');
                $encoder_options_id = Lookup(@$getid3->info['audio']['encoder_options'], 'encoder_options');
                $bitrate_mode_id = Lookup(@$getid3->info['audio']['bitrate_mode'], 'bitrate_mode');
                $channel_mode_id = Lookup(@$getid3->info['audio']['channelmode'], 'channel_mode');
                $sample_rate = (int) @$getid3->info['audio']['sample_rate'];
                $bits_per_sample = (int) @$getid3->info['audio']['bits_per_sample'];
                $lossless = (int) @$getid3->info['audio']['lossless'];
                $playtime = (double) @$getid3->info['playtime_seconds'];
                $avg_bit_rate = (double) @$getid3->info['bitrate'];
                $rg_track_gain = (double) @$getid3->info['replay_gain']['track']['adjustment'];
                $rg_album_gain = (double) @$getid3->info['replay_gain']['album']['adjustment'];
                $md5data = addslashes(@$getid3->info['md5_data_source'] ? @$getid3->info['md5_data_source'] : @$getid3->info['md5_data']);
                // Insert file entry
                $dbh->query("insert into getid3_file (filename, filemtime, filesize, format_name_id, encoder_version_id, encoder_options_id, bitrate_mode_id, channel_mode_id, sample_rate, bits_per_sample, lossless, playtime, avg_bit_rate, md5data, replaygain_track_gain, replaygain_album_gain) values ('{$filename_sls}', {$filemtime}, {$filesize}, {$format_name_id}, {$encoder_version_id}, {$encoder_options_id}, {$bitrate_mode_id}, {$channel_mode_id}, {$sample_rate}, {$bits_per_sample}, {$lossless}, {$playtime}, {$avg_bit_rate}, '{$md5data}', {$rg_track_gain}, {$rg_album_gain})");
                $file_id = $dbh->insert_id();
                // Loop thru tags
                if (@$getid3->info['tags']) {
                    foreach ($getid3->info['tags'] as $tag_name => $tag_data) {
                        // Loop thru fields
                        foreach ($tag_data as $field_name => $values) {
                            // Loop thru values
                            foreach ($values as $value) {
                                $tag_id = Lookup($tag_name, 'tag');
                                $field_id = Lookup($field_name, 'field');
                                $value_id = Lookup($value, 'value');
                                // Insert comments entry
                                $dbh->query("insert into getid3_comment (file_id, tag_id, field_id, value_id) values ({$file_id}, {$tag_id}, {$field_id}, {$value_id})");
                            }
                        }
                    }
                }
                echo xml_gen::p('#' . $file_id . ' - ' . utf8_encode($filename) . ' OK.');
                flush();
            } catch (Exception $e) {
                echo xml_gen::p_err($name . ' skipped - getID3() threw the exception: ' . $e->getmessage());
            }
        }
    } catch (Exception $e) {
        echo xml_gen::p_err('An error occured: ' . $e->getmessage());
    }
}
Exemplo n.º 4
0
 /**
  * Handle fatal errors.
  */
 protected function fail($msg)
 {
     $this->rollback();
     $this->head("Fatal Error");
     echo xml_gen::p($msg);
     $this->foot();
 }