function WriteID3v1() { if (filesize($this->filename) >= pow(2, 31) - 128 || filesize($this->filename) < 0) { $this->errors[] = 'Unable to write ID3v1 because file is larger than 2GB'; return false; } // File MUST be writeable - CHMOD(646) at least if (is_writeable($this->filename)) { ob_start(); if ($fp_source = fopen($this->filename, 'r+b')) { ob_end_clean(); fseek($fp_source, -128, SEEK_END); if (fread($fp_source, 3) == 'TAG') { fseek($fp_source, -128, SEEK_END); // overwrite existing ID3v1 tag } else { fseek($fp_source, 0, SEEK_END); // append new ID3v1 tag } $this->tag_data['track'] = isset($this->tag_data['track']) ? $this->tag_data['track'] : (isset($this->tag_data['track_number']) ? $this->tag_data['track_number'] : (isset($this->tag_data['tracknumber']) ? $this->tag_data['tracknumber'] : '')); $new_id3v1_tag_data = getid3_id3v1::GenerateID3v1Tag(isset($this->tag_data['title']) ? $this->tag_data['title'] : '', isset($this->tag_data['artist']) ? $this->tag_data['artist'] : '', isset($this->tag_data['album']) ? $this->tag_data['album'] : '', isset($this->tag_data['year']) ? $this->tag_data['year'] : '', isset($this->tag_data['genreid']) ? $this->tag_data['genreid'] : '', isset($this->tag_data['comment']) ? $this->tag_data['comment'] : '', isset($this->tag_data['track']) ? $this->tag_data['track'] : ''); fwrite($fp_source, $new_id3v1_tag_data, 128); fclose($fp_source); return true; } else { $errormessage = ob_get_contents(); ob_end_clean(); $this->errors[] = 'Could not open ' . $this->filename . ' mode "r+b"'; return false; } } $this->errors[] = 'File is not writeable: ' . $this->filename; return false; }
function WriteID3v1() { // File MUST be writeable - CHMOD(646) at least if (!empty($this->filename) && is_readable($this->filename) && is_writable($this->filename) && is_file($this->filename)) { $this->setRealFileSize(); if ($this->filesize <= 0 || !getid3_lib::intValueSupported($this->filesize)) { $this->errors[] = 'Unable to WriteID3v1(' . $this->filename . ') because filesize (' . $this->filesize . ') is larger than ' . round(PHP_INT_MAX / 1073741824) . 'GB'; return false; } if ($fp_source = fopen($this->filename, 'r+b')) { fseek($fp_source, -128, SEEK_END); if (fread($fp_source, 3) == 'TAG') { fseek($fp_source, -128, SEEK_END); // overwrite existing ID3v1 tag } else { fseek($fp_source, 0, SEEK_END); // append new ID3v1 tag } $this->tag_data['track'] = isset($this->tag_data['track']) ? $this->tag_data['track'] : (isset($this->tag_data['track_number']) ? $this->tag_data['track_number'] : (isset($this->tag_data['tracknumber']) ? $this->tag_data['tracknumber'] : '')); $new_id3v1_tag_data = getid3_id3v1::GenerateID3v1Tag(isset($this->tag_data['title']) ? $this->tag_data['title'] : '', isset($this->tag_data['artist']) ? $this->tag_data['artist'] : '', isset($this->tag_data['album']) ? $this->tag_data['album'] : '', isset($this->tag_data['year']) ? $this->tag_data['year'] : '', isset($this->tag_data['genreid']) ? $this->tag_data['genreid'] : '', isset($this->tag_data['comment']) ? $this->tag_data['comment'] : '', isset($this->tag_data['track']) ? $this->tag_data['track'] : ''); fwrite($fp_source, $new_id3v1_tag_data, 128); fclose($fp_source); return true; } else { $this->errors[] = 'Could not fopen(' . $this->filename . ', "r+b")'; return false; } } $this->errors[] = 'File is not writeable: ' . $this->filename; return false; }
function WriteID3v1() { // File MUST be writeable - CHMOD(646) at least if (is_writeable($this->filename)) { if ($fp_source = @fopen($this->filename, 'r+b')) { fseek($fp_source, -128, SEEK_END); if (fread($fp_source, 3) == 'TAG') { fseek($fp_source, -128, SEEK_END); // overwrite existing ID3v1 tag } else { fseek($fp_source, 0, SEEK_END); // append new ID3v1 tag } $new_id3v1_tag_data = getid3_id3v1::GenerateID3v1Tag(@$this->tag_data['title'], @$this->tag_data['artist'], @$this->tag_data['album'], @$this->tag_data['year'], @$this->tag_data['genreid'], @$this->tag_data['comment'], @$this->tag_data['track']); fwrite($fp_source, $new_id3v1_tag_data, 128); fclose($fp_source); return true; } else { $this->errors[] = 'Could not open ' . $this->filename . ' mode "r+b"'; return false; } } $this->errors[] = 'File is not writeable: ' . $this->filename; return false; }