12275f492f22e7b9e225ad77449c2e7f20c467e6
2 /////////////////////////////////////////////////////////////////
3 /// getID3() by James Heinrich <info@getid3.org> //
4 // available at http://getid3.sourceforge.net //
5 // or http://www.getid3.org //
6 // also https://github.com/JamesHeinrich/getID3 //
7 /////////////////////////////////////////////////////////////////
8 // See readme.txt for more details //
9 /////////////////////////////////////////////////////////////////
11 // write.lyrics3.php //
12 // module for writing Lyrics3 tags //
13 // dependencies: module.tag.lyrics3.php //
15 /////////////////////////////////////////////////////////////////
18 class getid3_write_lyrics3
22 //public $lyrics3_version = 2; // 1 or 2
23 public $warnings = array(); // any non-critical errors will be stored here
24 public $errors = array(); // any critical errors will be stored here
26 public function __construct() {
30 public function WriteLyrics3() {
31 $this->errors
[] = 'WriteLyrics3() not yet functional - cannot write Lyrics3';
34 public function DeleteLyrics3() {
35 // Initialize getID3 engine
37 $ThisFileInfo = $getID3->analyze($this->filename
);
38 if (isset($ThisFileInfo['lyrics3']['tag_offset_start']) && isset($ThisFileInfo['lyrics3']['tag_offset_end'])) {
39 if (is_readable($this->filename
) && is_writable($this->filename
) && is_file($this->filename
) && ($fp = fopen($this->filename
, 'a+b'))) {
42 $oldignoreuserabort = ignore_user_abort(true);
44 fseek($fp, $ThisFileInfo['lyrics3']['tag_offset_end']);
45 $DataAfterLyrics3 = '';
46 if ($ThisFileInfo['filesize'] > $ThisFileInfo['lyrics3']['tag_offset_end']) {
47 $DataAfterLyrics3 = fread($fp, $ThisFileInfo['filesize'] - $ThisFileInfo['lyrics3']['tag_offset_end']);
50 ftruncate($fp, $ThisFileInfo['lyrics3']['tag_offset_start']);
52 if (!empty($DataAfterLyrics3)) {
53 fseek($fp, $ThisFileInfo['lyrics3']['tag_offset_start']);
54 fwrite($fp, $DataAfterLyrics3, strlen($DataAfterLyrics3));
59 ignore_user_abort($oldignoreuserabort);
64 $this->errors
[] = 'Cannot fopen('.$this->filename
.', "a+b")';