// // available at http://getid3.sourceforge.net /// ///////////////////////////////////////////////////////////////// // // // getid3.write.php - part of getID3() // // sample script for demonstrating writing ID3v1 and ID3v2 // // tags for MP3, or Ogg comment tags for Ogg Vorbis // // See getid3.readme.txt for more details // // // ///////////////////////////////////////////////////////////////// require_once('getid3.php'); require_once(GETID3_INCLUDEPATH.'getid3.putid3.php'); require_once(GETID3_INCLUDEPATH.'getid3.ogginfo.php'); require_once(GETID3_INCLUDEPATH.'getid3.functions.php'); require_once(GETID3_INCLUDEPATH.'getid3.id3.php'); $EditorFilename = (isset($_REQUEST['EditorFilename']) ? SafeStripSlashes($_REQUEST['EditorFilename']) : ''); if (isset($_POST['WriteOggCommentTagNow'])) { $data['title'] = $_POST['EditorTitle']; $data['artist'] = $_POST['EditorArtist']; $data['album'] = $_POST['EditorAlbum']; $data['genre'] = LookupGenre($_POST['EditorGenre']); $data['tracknumber'] = $_POST['EditorTrack']; $data['comment'] = $_POST['EditorComment']; echo 'Ogg tag'.(OggWrite($EditorFilename, $data) ? '' : ' NOT').' written successfully
'; } elseif (isset($_POST['WriteID3v2TagNow'])) { echo 'starting to write tag
'; if ($_POST['EditorTitle']) { $data['id3v2']['TIT2']['encodingid'] = 0; $data['id3v2']['TIT2']['data'] = SafeStripSlashes($_POST['EditorTitle']); } if ($_POST['EditorArtist']) { $data['id3v2']['TPE1']['encodingid'] = 0; $data['id3v2']['TPE1']['data'] = SafeStripSlashes($_POST['EditorArtist']); } if ($_POST['EditorAlbum']) { $data['id3v2']['TALB']['encodingid'] = 0; $data['id3v2']['TALB']['data'] = SafeStripSlashes($_POST['EditorAlbum']); } if ($_POST['EditorYear']) { $data['id3v2']['TYER']['encodingid'] = 0; $data['id3v2']['TYER']['data'] = (int) SafeStripSlashes($_POST['EditorYear']); } if ($_POST['EditorTrack']) { $data['id3v2']['TRCK']['encodingid'] = 0; $data['id3v2']['TRCK']['data'] = (int) SafeStripSlashes($_POST['EditorTrack']); } if ($_POST['EditorGenre']) { $data['id3v2']['TCON']['encodingid'] = 0; $data['id3v2']['TCON']['data'] = '('.$_POST['EditorGenre'].')'; } if ($_POST['EditorComment']) { $data['id3v2']['COMM'][0]['encodingid'] = 0; $data['id3v2']['COMM'][0]['language'] = 'eng'; $data['id3v2']['COMM'][0]['description'] = ''; $data['id3v2']['COMM'][0]['data'] = SafeStripSlashes($_POST['EditorComment']); } if (isset($_FILES['userfile']['tmp_name']) && $_FILES['userfile']['tmp_name']) { if (is_uploaded_file($_FILES['userfile']['tmp_name'])) { if ($fd = @fopen($_FILES['userfile']['tmp_name'], 'rb')) { $data['id3v2']['APIC'][0]['data'] = fread($fd, filesize($_FILES['userfile']['tmp_name'])); fclose ($fd); $data['id3v2']['APIC'][0]['encodingid'] = (isset($EditorAPICencodingID) ? $EditorAPICencodingID : 0); $data['id3v2']['APIC'][0]['picturetypeid'] = (isset($EditorAPICpictypeID) ? $EditorAPICpictypeID : 0); $data['id3v2']['APIC'][0]['description'] = (isset($EditorAPICdescription) ? $EditorAPICdescription : ''); require_once(GETID3_INCLUDEPATH.'getid3.getimagesize.php'); $imageinfo = GetDataImageSize($data['id3v2']['APIC'][0]['data']); $imagetypes = array(1=>'gif', 2=>'jpeg', 3=>'png'); if (isset($imageinfo[2]) && ($imageinfo[2] >= 1) && ($imageinfo[2] <= 3)) { $data['id3v2']['APIC'][0]['mime'] = 'image/'.$imagetypes[$imageinfo[2]]; } else { echo 'invalid image format
'; } } else { echo 'cannot open '.$_FILES['userfile']['tmp_name'].'
'; } } else { echo '!is_uploaded_file('.$_FILES['userfile']['tmp_name'].')
'; } } $data['id3v2']['TXXX'][0]['encodingid'] = 0; $data['id3v2']['TXXX'][0]['description'] = 'ID3v2-tagged by'; $data['id3v2']['TXXX'][0]['data'] = 'getID3() v'.GETID3VERSION.' (www.silisoftware.com)'; if ($_POST['WriteOrDelete'] == 'W') { // write tags if (isset($_POST['VersionToEdit1']) && ($_POST['VersionToEdit1'] == '1')) { if (!is_numeric($_POST['EditorGenre'])) { $EditorGenre = 255; // ID3v1 only supports predefined numeric genres (255 = unknown) } echo 'ID3v1 changes'.(WriteID3v1($EditorFilename, $_POST['EditorTitle'], $_POST['EditorArtist'], $_POST['EditorAlbum'], $_POST['EditorYear'], $_POST['EditorComment'], $_POST['EditorGenre'], $_POST['EditorTrack'], true) ? '' : ' NOT').' written successfully
'; } if (isset($_POST['VersionToEdit2']) && ($_POST['VersionToEdit2'] == '2')) { echo 'ID3v2 changes'.(WriteID3v2($EditorFilename, $data, 3, 0, true, 0, true) ? '' : ' NOT').' written successfully
'; } } else { // delete tags if (isset($_POST['VersionToEdit1']) && ($_POST['VersionToEdit1'] == '1')) { echo 'ID3v1 tag'.(RemoveID3v1($EditorFilename, true) ? '' : ' NOT').' successfully deleted
'; } if (isset($_POST['VersionToEdit2']) && ($_POST['VersionToEdit2'] == '2')) { echo 'ID3v2 tag'.(RemoveID3v2($EditorFilename, true) ? '' : ' NOT').' successfully deleted
'; } } } echo 'Start Over
'; echo ''; echo ''; if ($EditorFilename) { echo ''; if (file_exists($EditorFilename)) { $OldThisfileInfo = GetAllFileInfo($EditorFilename); echo ''; echo ''; echo ''; if ($OldThisfileInfo['fileformat'] == 'mp3') { echo ''; } echo ''; echo ''; echo ''; if ($OldThisfileInfo['fileformat'] == 'mp3') { echo ''; echo ''; echo ''; echo ''; } elseif ($OldThisfileInfo['fileformat'] == 'ogg') { echo ''; } echo ''; } else { echo ''; echo ''; } } else { echo ''; echo ''; } echo '
Sample ID3v1/ID3v2/OggComment editor
Filename: '.$EditorFilename.'
Title
Artist
Album
Year
Track
Genre
Comment
Picture
Write Delete
ID3v1 ID3v2
Error'.FixTextFields($EditorFilename).' does not exist
'; ?>