source: extensions/charlies_content/getid3/getid3/write.lyrics3.php @ 3544

Last change on this file since 3544 was 3544, checked in by vdigital, 15 years ago

Change: getid3 upgraded to -> 1.7.9

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Author Date Id Revision
File size: 2.4 KB
Line 
1<?php
2/////////////////////////////////////////////////////////////////
3/// getID3() by James Heinrich <info@getid3.org>               //
4//  available at http://getid3.sourceforge.net                 //
5//            or http://www.getid3.org                         //
6/////////////////////////////////////////////////////////////////
7// See readme.txt for more details                             //
8/////////////////////////////////////////////////////////////////
9//                                                             //
10// write.lyrics3.php                                           //
11// module for writing Lyrics3 tags                             //
12// dependencies: module.tag.lyrics3.php                        //
13//                                                            ///
14/////////////////////////////////////////////////////////////////
15
16
17class getid3_write_lyrics3
18{
19        var $filename;
20        var $tag_data;
21        //var $lyrics3_version = 2;       // 1 or 2
22        var $warnings        = array(); // any non-critical errors will be stored here
23        var $errors          = array(); // any critical errors will be stored here
24
25        function getid3_write_lyrics3() {
26                return true;
27        }
28
29        function WriteLyrics3() {
30                $this->errors[] = 'WriteLyrics3() not yet functional - cannot write Lyrics3';
31                return false;
32        }
33
34        function DeleteLyrics3() {
35                // Initialize getID3 engine
36                $getID3 = new getID3;
37                $ThisFileInfo = $getID3->analyze($this->filename);
38                if (isset($ThisFileInfo['lyrics3']['tag_offset_start']) && isset($ThisFileInfo['lyrics3']['tag_offset_end'])) {
39                        if ($fp = @fopen($this->filename, 'a+b')) {
40
41                                flock($fp, LOCK_EX);
42                                $oldignoreuserabort = ignore_user_abort(true);
43
44                                fseek($fp, $ThisFileInfo['lyrics3']['tag_offset_end'], SEEK_SET);
45                                $DataAfterLyrics3 = '';
46                                if ($ThisFileInfo['filesize'] > $ThisFileInfo['lyrics3']['tag_offset_end']) {
47                                        $DataAfterLyrics3 = fread($fp, $ThisFileInfo['filesize'] - $ThisFileInfo['lyrics3']['tag_offset_end']);
48                                }
49
50                                ftruncate($fp, $ThisFileInfo['lyrics3']['tag_offset_start']);
51
52                                if (!empty($DataAfterLyrics3)) {
53                                        fseek($fp, $ThisFileInfo['lyrics3']['tag_offset_start'], SEEK_SET);
54                                        fwrite($fp, $DataAfterLyrics3, strlen($DataAfterLyrics3));
55                                }
56
57                                flock($fp, LOCK_UN);
58                                fclose($fp);
59                                ignore_user_abort($oldignoreuserabort);
60
61                                return true;
62
63                        } else {
64
65                                $this->errors[] = 'Cannot open "'.$this->filename.'" in "a+b" mode';
66                                return false;
67
68                        }
69                }
70                // no Lyrics3 present
71                return true;
72        }
73
74
75
76}
77
78?>
Note: See TracBrowser for help on using the repository browser.