public function read() { $engine = new getid3(); $engine->filename = $this->filename; $engine->fp = fopen($this->filename, 'rb'); $engine->include_module('tag.id3v1'); $tag = new getid3_id3v1($engine); $tag->Analyze(); if (!isset($engine->info['id3v1'])) { return; } $this->title = $engine->info['id3v1']['title']; $this->artist = $engine->info['id3v1']['artist']; $this->album = $engine->info['id3v1']['album']; $this->year = $engine->info['id3v1']['year']; $this->genre_id = $engine->info['id3v1']['genre_id']; $this->genre = $engine->info['id3v1']['genre']; $this->comment = $engine->info['id3v1']['comment']; $this->track = $engine->info['id3v1']['track']; return true; }
public function remove() { $engine = new getid3(); $engine->filename = $this->filename; $engine->fp = fopen($this->filename, 'rb'); $engine->include_module('tag.apetag'); $tag = new getid3_apetag($engine); $tag->Analyze(); if (isset($engine->info['ape']['tag_offset_start']) && isset($engine->info['ape']['tag_offset_end'])) { if (!($fp = @fopen($this->filename, 'a+b'))) { throw new getid3_exception('Could not open a+b: ' . $this->filename); } // get data after apetag if (filesize($this->filename) > $engine->info['ape']['tag_offset_end']) { fseek($fp, $engine->info['ape']['tag_offset_end'], SEEK_SET); $data_after_ape = fread($fp, filesize($this->filename) - $engine->info['ape']['tag_offset_end']); } // truncate file before start of apetag ftruncate($fp, $engine->info['ape']['tag_offset_start']); // rewrite data after apetag if (isset($data_after_ape)) { fseek($fp, $engine->info['ape']['tag_offset_start'], SEEK_SET); fwrite($fp, $data_after_ape, strlen($data_after_ape)); } fclose($fp); clearstatcache(); } // success when removing non-existant tag return true; }
public function remove() { $engine = new getid3(); $engine->filename = $this->filename; $engine->fp = fopen($this->filename, 'rb'); $engine->include_module('tag.id3v2'); $tag = new getid3_id3v2($engine); $tag->Analyze(); if ((int) @$engine->info['avdataoffset']) { if (!($fp_source = @fopen($this->filename, 'rb'))) { throw new getid3_exception('Could not open ' . $this->filename . ' mode "rb"'); } fseek($fp_source, $engine->info['avdataoffset'], SEEK_SET); if (!($fp_temp = @fopen($this->filename . 'getid3tmp', 'w+b'))) { throw new getid3_exception('Could not open ' . $this->filename . 'getid3tmp mode "w+b"'); } while ($buffer = fread($fp_source, 16384)) { fwrite($fp_temp, $buffer, strlen($buffer)); } fclose($fp_temp); fclose($fp_source); $this->save_permissions(); unlink($this->filename); rename($this->filename . 'getid3tmp', $this->filename); $this->restore_permissions(); clearstatcache(); } // success when removing non-existant tag return true; }