//
// 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 '';
?>