/common/libraries/plugin/getid3/demos/demo.mysql.php
PHP | 2615 lines | 2260 code | 291 blank | 64 comment | 248 complexity | 80552070f45bb4c53952935217b24f3e MD5 | raw file
Possible License(s): GPL-3.0, MIT, GPL-2.0, BSD-3-Clause, LGPL-2.1, LGPL-3.0
Large files files are truncated, but you can click here to view the full file
- <?php
- /////////////////////////////////////////////////////////////////
- /// getID3() by James Heinrich <info@getid3.org> //
- // available at http://getid3.sourceforge.net //
- // or http://www.getid3.org //
- /////////////////////////////////////////////////////////////////
- // //
- // /demo/demo.mysql.php - part of getID3() //
- // Sample script for recursively scanning directories and //
- // storing the results in a database //
- // See readme.txt for more details //
- // ///
- /////////////////////////////////////////////////////////////////
-
-
- //die('Due to a security issue, this demo has been disabled. It can be enabled by removing line 16 in demos/demo.mysql.php');
-
-
- // OPTIONS:
- $getid3_demo_mysql_encoding = 'ISO-8859-1';
- $getid3_demo_mysql_md5_data = false; // All data hashes are by far the slowest part of scanning
- $getid3_demo_mysql_md5_file = false;
-
- define('GETID3_DB_HOST', 'localhost');
- define('GETID3_DB_USER', 'root');
- define('GETID3_DB_PASS', 'password');
- define('GETID3_DB_DB', 'getid3');
- define('GETID3_DB_TABLE', 'files');
-
- // CREATE DATABASE `getid3`;
-
-
- if (! @mysql_connect(GETID3_DB_HOST, GETID3_DB_USER, GETID3_DB_PASS))
- {
- die('Could not connect to MySQL host: <blockquote style="background-color: #FF9933; padding: 10px;">' . mysql_error() . '</blockquote>');
- }
- if (! @mysql_select_db(GETID3_DB_DB))
- {
- die('Could not select database: <blockquote style="background-color: #FF9933; padding: 10px;">' . mysql_error() . '</blockquote>');
- }
-
- if (! @include_once ('../getid3/getid3.php'))
- {
- die('Cannot open ' . realpath('../getid3/getid3.php'));
- }
- // Initialize getID3 engine
- $getID3 = new getID3();
- $getID3->setOption(array('option_md5_data' => $getid3_demo_mysql_md5_data,
- 'encoding' => $getid3_demo_mysql_encoding));
-
- function RemoveAccents($string)
- {
- // Revised version by marksteward�hotmail*com
- return strtr(strtr($string, '������������������������������������������������������������', 'SZszYAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy'), array(
- '�' => 'TH', '�' => 'th', '�' => 'DH', '�' => 'dh', '�' => 'ss', '�' => 'OE', '�' => 'oe', '�' => 'AE',
- '�' => 'ae', '�' => 'u'));
- }
-
- function FixTextFields($text)
- {
- $text = getid3_lib :: SafeStripSlashes($text);
- $text = htmlentities($text, ENT_QUOTES);
- return $text;
- }
-
- function BitrateColor($bitrate, $BitrateMaxScale = 768)
- {
- // $BitrateMaxScale is bitrate of maximum-quality color (bright green)
- // below this is gradient, above is solid green
-
-
- $bitrate *= (256 / $BitrateMaxScale); // scale from 1-[768]kbps to 1-256
- $bitrate = round(min(max($bitrate, 1), 256));
- $bitrate --; // scale from 1-256kbps to 0-255kbps
-
-
- $Rcomponent = max(255 - ($bitrate * 2), 0);
- $Gcomponent = max(($bitrate * 2) - 255, 0);
- if ($bitrate > 127)
- {
- $Bcomponent = max((255 - $bitrate) * 2, 0);
- }
- else
- {
- $Bcomponent = max($bitrate * 2, 0);
- }
- return str_pad(dechex($Rcomponent), 2, '0', STR_PAD_LEFT) . str_pad(dechex($Gcomponent), 2, '0', STR_PAD_LEFT) . str_pad(dechex($Bcomponent), 2, '0', STR_PAD_LEFT);
- }
-
- function BitrateText($bitrate, $decimals = 0)
- {
- return '<span style="color: #' . BitrateColor($bitrate) . '">' . number_format($bitrate, $decimals) . ' kbps</span>';
- }
-
- function fileextension($filename, $numextensions = 1)
- {
- if (strstr($filename, '.'))
- {
- $reversedfilename = strrev($filename);
- $offset = 0;
- for($i = 0; $i < $numextensions; $i ++)
- {
- $offset = strpos($reversedfilename, '.', $offset + 1);
- if ($offset === false)
- {
- return '';
- }
- }
- return strrev(substr($reversedfilename, 0, $offset));
- }
- return '';
- }
-
- function RenameFileFromTo($from, $to, &$results)
- {
- $success = true;
- if ($from === $to)
- {
- $results = '<span style="color: #FF0000;"><b>Source and Destination filenames identical</b><br>FAILED to rename';
- }
- elseif (! file_exists($from))
- {
- $results = '<span style="color: #FF0000;"><b>Source file does not exist</b><br>FAILED to rename';
- }
- elseif (file_exists($to) && (strtolower($from) !== strtolower($to)))
- {
- $results = '<span style="color: #FF0000;"><b>Destination file already exists</b><br>FAILED to rename';
- }
- elseif (@rename($from, $to))
- {
- $SQLquery = 'DELETE FROM `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' WHERE (`filename` = "' . mysql_escape_string($from) . '")';
- safe_mysql_query($SQLquery);
- $results = '<span style="color: #008000;">Successfully renamed';
- }
- else
- {
- $results = '<br><span style="color: #FF0000;">FAILED to rename';
- $success = false;
- }
- $results .= ' from:<br><i>' . $from . '</i><br>to:<br><i>' . $to . '</i></span><hr>';
- return $success;
- }
-
- if (! empty($_REQUEST['renamefilefrom']) && ! empty($_REQUEST['renamefileto']))
- {
-
- $results = '';
- RenameFileFromTo($_REQUEST['renamefilefrom'], $_REQUEST['renamefileto'], $results);
- echo $results;
- exit();
-
- }
- elseif (! empty($_REQUEST['m3ufilename']))
- {
-
- header('Content-type: audio/x-mpegurl');
- echo '#EXTM3U' . "\n";
- echo WindowsShareSlashTranslate($_REQUEST['m3ufilename']) . "\n";
- exit();
-
- }
- elseif (! isset($_REQUEST['m3u']) && ! isset($_REQUEST['m3uartist']) && ! isset($_REQUEST['m3utitle']))
- {
-
- echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">';
- echo '<html><head><title>getID3() demo - /demo/mysql.php</title><style>BODY, TD, TH { font-family: sans-serif; font-size: 10pt; } A { text-decoration: none; } A:hover { text-decoration: underline; } A:visited { font-style: italic; }</style></head><body>';
-
- }
-
- function WindowsShareSlashTranslate($filename)
- {
- if (substr($filename, 0, 2) == '//')
- {
- return str_replace('/', '\\', $filename);
- }
- return $filename;
- }
-
- function safe_mysql_query($SQLquery)
- {
- $result = @mysql_query($SQLquery);
- if (mysql_error())
- {
- die('<FONT COLOR="red">' . mysql_error() . '</FONT><hr><TT>' . $SQLquery . '</TT>');
- }
- return $result;
- }
-
- function mysql_table_exists($tablename)
- {
- return (bool) mysql_query('DESCRIBE ' . $tablename);
- }
-
- function AcceptableExtensions($fileformat, $audio_dataformat = '', $video_dataformat = '')
- {
- static $AcceptableExtensionsAudio = array();
- if (empty($AcceptableExtensionsAudio))
- {
- $AcceptableExtensionsAudio['mp3']['mp3'] = array('mp3');
- $AcceptableExtensionsAudio['mp2']['mp2'] = array('mp2');
- $AcceptableExtensionsAudio['mp1']['mp1'] = array('mp1');
- $AcceptableExtensionsAudio['asf']['asf'] = array('asf');
- $AcceptableExtensionsAudio['asf']['wma'] = array('wma');
- $AcceptableExtensionsAudio['riff']['mp3'] = array('wav');
- $AcceptableExtensionsAudio['riff']['wav'] = array('wav');
- }
- static $AcceptableExtensionsVideo = array();
- if (empty($AcceptableExtensionsVideo))
- {
- $AcceptableExtensionsVideo['mp3']['mp3'] = array('mp3');
- $AcceptableExtensionsVideo['mp2']['mp2'] = array('mp2');
- $AcceptableExtensionsVideo['mp1']['mp1'] = array('mp1');
- $AcceptableExtensionsVideo['asf']['asf'] = array('asf');
- $AcceptableExtensionsVideo['asf']['wmv'] = array('wmv');
- $AcceptableExtensionsVideo['gif']['gif'] = array('gif');
- $AcceptableExtensionsVideo['jpg']['jpg'] = array('jpg');
- $AcceptableExtensionsVideo['png']['png'] = array('png');
- $AcceptableExtensionsVideo['bmp']['bmp'] = array('bmp');
- }
- if (! empty($video_dataformat))
- {
- return (isset($AcceptableExtensionsVideo[$fileformat][$video_dataformat]) ? $AcceptableExtensionsVideo[$fileformat][$video_dataformat] : array());
- }
- else
- {
- return (isset($AcceptableExtensionsAudio[$fileformat][$audio_dataformat]) ? $AcceptableExtensionsAudio[$fileformat][$audio_dataformat] : array());
- }
- }
-
- if (! empty($_REQUEST['scan']))
- {
- if (mysql_table_exists(GETID3_DB_TABLE))
- {
- $SQLquery = 'DROP TABLE `' . GETID3_DB_TABLE . '`';
- safe_mysql_query($SQLquery);
- }
- }
- if (! mysql_table_exists(GETID3_DB_TABLE))
- {
- $SQLquery = 'CREATE TABLE `' . GETID3_DB_TABLE . '` (';
- $SQLquery .= ' `ID` mediumint(8) unsigned NOT NULL auto_increment,';
- $SQLquery .= ' `filename` text NOT NULL,';
- $SQLquery .= ' `LastModified` int(11) NOT NULL default "0",';
- $SQLquery .= ' `md5_file` varchar(32) NOT NULL default "",';
- $SQLquery .= ' `md5_data` varchar(32) NOT NULL default "",';
- $SQLquery .= ' `md5_data_source` varchar(32) NOT NULL default "",';
- $SQLquery .= ' `filesize` int(10) unsigned NOT NULL default "0",';
- $SQLquery .= ' `fileformat` varchar(255) NOT NULL default "",';
- $SQLquery .= ' `audio_dataformat` varchar(255) NOT NULL default "",';
- $SQLquery .= ' `video_dataformat` varchar(255) NOT NULL default "",';
- $SQLquery .= ' `audio_bitrate` float NOT NULL default "0",';
- $SQLquery .= ' `video_bitrate` float NOT NULL default "0",';
- $SQLquery .= ' `playtime_seconds` varchar(255) NOT NULL default "",';
- $SQLquery .= ' `tags` varchar(255) NOT NULL default "",';
- $SQLquery .= ' `artist` varchar(255) NOT NULL default "",';
- $SQLquery .= ' `title` varchar(255) NOT NULL default "",';
- $SQLquery .= ' `remix` varchar(255) NOT NULL default "",';
- $SQLquery .= ' `album` varchar(255) NOT NULL default "",';
- $SQLquery .= ' `genre` varchar(255) NOT NULL default "",';
- $SQLquery .= ' `comment` text NOT NULL,';
- $SQLquery .= ' `track` varchar(7) NOT NULL default "",';
- $SQLquery .= ' `comments_all` text NOT NULL,';
- $SQLquery .= ' `comments_id3v2` text NOT NULL,';
- $SQLquery .= ' `comments_ape` text NOT NULL,';
- $SQLquery .= ' `comments_lyrics3` text NOT NULL,';
- $SQLquery .= ' `comments_id3v1` text NOT NULL,';
- $SQLquery .= ' `warning` text NOT NULL,';
- $SQLquery .= ' `error` text NOT NULL,';
- $SQLquery .= ' `track_volume` float NOT NULL default "0",';
- $SQLquery .= ' `encoder_options` varchar(255) NOT NULL default "",';
- $SQLquery .= ' `vbr_method` varchar(255) NOT NULL default "",';
- $SQLquery .= ' PRIMARY KEY (`ID`)';
- $SQLquery .= ') TYPE=MyISAM;';
-
- safe_mysql_query($SQLquery);
- }
-
- $ExistingTableFields = array();
- $result = mysql_query('DESCRIBE `' . GETID3_DB_TABLE . '`');
- while ($row = mysql_fetch_array($result))
- {
- $ExistingTableFields[$row['Field']] = $row;
- }
- if (! isset($ExistingTableFields['encoder_options']))
- { // Added in 1.7.0b2
- echo '<b>adding field `encoder_options`</b><br>';
- mysql_query('ALTER TABLE `' . GETID3_DB_TABLE . '` ADD `encoder_options` VARCHAR(255) DEFAULT "" NOT NULL AFTER `error`');
- mysql_query('OPTIMIZE TABLE `' . GETID3_DB_TABLE . '`');
- }
- if (isset($ExistingTableFields['track']) && ($ExistingTableFields['track']['Type'] != 'varchar(7)'))
- { // Changed in 1.7.0b2
- echo '<b>changing field `track` to VARCHAR(7)</b><br>';
- mysql_query('ALTER TABLE `' . GETID3_DB_TABLE . '` CHANGE `track` `track` VARCHAR(7) DEFAULT "" NOT NULL');
- mysql_query('OPTIMIZE TABLE `' . GETID3_DB_TABLE . '`');
- }
- if (! isset($ExistingTableFields['track_volume']))
- { // Added in 1.7.0b5
- echo '<H1><FONT COLOR="red">WARNING! You should erase your database and rescan everything because the comment storing has been changed since the last version</FONT></H1><hr>';
- echo '<b>adding field `track_volume`</b><br>';
- mysql_query('ALTER TABLE `' . GETID3_DB_TABLE . '` ADD `track_volume` FLOAT NOT NULL AFTER `error`');
- mysql_query('OPTIMIZE TABLE `' . GETID3_DB_TABLE . '`');
- }
- if (! isset($ExistingTableFields['remix']))
- { // Added in 1.7.3b1
- echo '<b>adding field `encoder_options`, `alternate_name`, `parody`</b><br>';
- mysql_query('ALTER TABLE `' . GETID3_DB_TABLE . '` ADD `remix` VARCHAR(255) DEFAULT "" NOT NULL AFTER `title`');
- mysql_query('ALTER TABLE `' . GETID3_DB_TABLE . '` ADD `alternate_name` VARCHAR(255) DEFAULT "" NOT NULL AFTER `track`');
- mysql_query('ALTER TABLE `' . GETID3_DB_TABLE . '` ADD `parody` VARCHAR(255) DEFAULT "" NOT NULL AFTER `alternate_name`');
- mysql_query('OPTIMIZE TABLE `' . GETID3_DB_TABLE . '`');
- }
-
- function SynchronizeAllTags($filename, $synchronizefrom = 'all', $synchronizeto = 'A12', &$errors)
- {
- global $getID3;
-
- set_time_limit(30);
-
- $ThisFileInfo = $getID3->analyze($filename);
- getid3_lib :: CopyTagsToComments($ThisFileInfo);
-
- if ($synchronizefrom == 'all')
- {
- $SourceArray = @$ThisFileInfo['comments'];
- }
- elseif (! empty($ThisFileInfo['tags'][$synchronizefrom]))
- {
- $SourceArray = @$ThisFileInfo['tags'][$synchronizefrom];
- }
- else
- {
- die('ERROR: $ThisFileInfo[tags][' . $synchronizefrom . '] does not exist');
- }
-
- $SQLquery = 'DELETE FROM `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' WHERE (`filename` = "' . mysql_escape_string($filename) . '")';
- safe_mysql_query($SQLquery);
-
- $TagFormatsToWrite = array();
- if ((strpos($synchronizeto, '2') !== false) && ($synchronizefrom != 'id3v2'))
- {
- $TagFormatsToWrite[] = 'id3v2.3';
- }
- if ((strpos($synchronizeto, 'A') !== false) && ($synchronizefrom != 'ape'))
- {
- $TagFormatsToWrite[] = 'ape';
- }
- if ((strpos($synchronizeto, 'L') !== false) && ($synchronizefrom != 'lyrics3'))
- {
- $TagFormatsToWrite[] = 'lyrics3';
- }
- if ((strpos($synchronizeto, '1') !== false) && ($synchronizefrom != 'id3v1'))
- {
- $TagFormatsToWrite[] = 'id3v1';
- }
-
- getid3_lib :: IncludeDependency(GETID3_INCLUDEPATH . 'write.php', __FILE__, true);
- $tagwriter = new getid3_writetags();
- $tagwriter->filename = $filename;
- $tagwriter->tagformats = $TagFormatsToWrite;
- $tagwriter->overwrite_tags = true;
- $tagwriter->tag_encoding = $getID3->encoding;
- $tagwriter->tag_data = $SourceArray;
-
- if ($tagwriter->WriteTags())
- {
- $errors = $tagwriter->errors;
- return true;
- }
- $errors = $tagwriter->errors;
- return false;
- }
-
- $IgnoreNoTagFormats = array('', 'png', 'jpg', 'gif', 'bmp', 'swf', 'pdf', 'zip', 'rar', 'mid', 'mod', 'xm', 'it', 's3m');
-
- if (! empty($_REQUEST['scan']) || ! empty($_REQUEST['newscan']) || ! empty($_REQUEST['rescanerrors']))
- {
-
- $SQLquery = 'DELETE from `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' WHERE (`fileformat` = "")';
- safe_mysql_query($SQLquery);
-
- $FilesInDir = array();
-
- if (! empty($_REQUEST['rescanerrors']))
- {
-
- echo '<a href="' . htmlentities($_SERVER['PHP_SELF']) . '">abort</a><hr>';
-
- echo 'Re-scanning all media files already in database that had errors and/or warnings in last scan<hr>';
-
- $SQLquery = 'SELECT `filename`';
- $SQLquery .= ' FROM `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' WHERE (`error` <> "")';
- $SQLquery .= ' OR (`warning` <> "")';
- $SQLquery .= ' ORDER BY `filename` ASC';
- $result = safe_mysql_query($SQLquery);
- while ($row = mysql_fetch_array($result))
- {
-
- if (! file_exists($row['filename']))
- {
- echo '<b>File missing: ' . $row['filename'] . '</b><br>';
- $SQLquery = 'DELETE FROM `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' WHERE (`filename` = "' . mysql_escape_string($row['filename']) . '")';
- safe_mysql_query($SQLquery);
- }
- else
- {
- $FilesInDir[] = $row['filename'];
- }
-
- }
-
- }
- elseif (! empty($_REQUEST['scan']) || ! empty($_REQUEST['newscan']))
- {
-
- echo '<a href="' . htmlentities($_SERVER['PHP_SELF']) . '">abort</a><hr>';
-
- echo 'Scanning all media files in <b>' . str_replace('\\', '/', realpath(! empty($_REQUEST['scan']) ? $_REQUEST['scan'] : $_REQUEST['newscan'])) . '</b> (and subdirectories)<hr>';
-
- $SQLquery = 'SELECT COUNT(*) AS `num`, `filename`';
- $SQLquery .= ' FROM `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' GROUP BY `filename`';
- $SQLquery .= ' ORDER BY `num` DESC';
- $result = safe_mysql_query($SQLquery);
- $DupesDeleted = 0;
- while ($row = mysql_fetch_array($result))
- {
- set_time_limit(30);
- if ($row['num'] <= 1)
- {
- break;
- }
- $SQLquery = 'DELETE FROM `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' WHERE `filename` LIKE "' . mysql_escape_string($row['filename']) . '"';
- safe_mysql_query($SQLquery);
- $DupesDeleted ++;
- }
- if ($DupesDeleted > 0)
- {
- echo 'Deleted <b>' . number_format($DupesDeleted) . '</b> duplicate filenames<hr>';
- }
-
- if (! empty($_REQUEST['newscan']))
- {
- $AlreadyInDatabase = array();
- set_time_limit(60);
- $SQLquery = 'SELECT `filename`';
- $SQLquery .= ' FROM `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' ORDER BY `filename` ASC';
- $result = safe_mysql_query($SQLquery);
- while ($row = mysql_fetch_array($result))
- {
- //$AlreadyInDatabase[] = strtolower($row['filename']);
- $AlreadyInDatabase[] = $row['filename'];
- }
- }
-
- $DirectoriesToScan = array(@$_REQUEST['scan'] ? $_REQUEST['scan'] : $_REQUEST['newscan']);
- $DirectoriesScanned = array();
- while (count($DirectoriesToScan) > 0)
- {
- foreach ($DirectoriesToScan as $DirectoryKey => $startingdir)
- {
- if ($dir = opendir($startingdir))
- {
- set_time_limit(30);
- echo '<b>' . str_replace('\\', '/', $startingdir) . '</b><br>';
- flush();
- while (($file = readdir($dir)) !== false)
- {
- if (($file != '.') && ($file != '..'))
- {
- $RealPathName = realpath($startingdir . '/' . $file);
- if (is_dir($RealPathName))
- {
- if (! in_array($RealPathName, $DirectoriesScanned) && ! in_array($RealPathName, $DirectoriesToScan))
- {
- $DirectoriesToScan[] = $RealPathName;
- }
- }
- else
- if (is_file($RealPathName))
- {
- if (! empty($_REQUEST['newscan']))
- {
- if (! in_array(str_replace('\\', '/', $RealPathName), $AlreadyInDatabase))
- {
- $FilesInDir[] = $RealPathName;
- }
- }
- elseif (! empty($_REQUEST['scan']))
- {
- $FilesInDir[] = $RealPathName;
- }
- }
- }
- }
- closedir($dir);
- }
- else
- {
- echo '<FONT COLOR="RED">Failed to open directory "<b>' . $startingdir . '</b>"</FONT><br><br>';
- }
- $DirectoriesScanned[] = $startingdir;
- unset($DirectoriesToScan[$DirectoryKey]);
- }
- }
- echo '<i>List of files to scan complete (added ' . number_format(count($FilesInDir)) . ' files to scan)</i><hr>';
- flush();
- }
-
- $FilesInDir = array_unique($FilesInDir);
- sort($FilesInDir);
-
- $starttime = time();
- $rowcounter = 0;
- $totaltoprocess = count($FilesInDir);
-
- foreach ($FilesInDir as $filename)
- {
- set_time_limit(300);
-
- echo '<br>' . date('H:i:s') . ' [' . number_format(++ $rowcounter) . ' / ' . number_format($totaltoprocess) . '] ' . str_replace('\\', '/', $filename);
-
- $ThisFileInfo = $getID3->analyze($filename);
- getid3_lib :: CopyTagsToComments($ThisFileInfo);
-
- if (file_exists($filename))
- {
- $ThisFileInfo['file_modified_time'] = filemtime($filename);
- $ThisFileInfo['md5_file'] = ($getid3_demo_mysql_md5_file ? md5_file($filename) : '');
- }
-
- if (empty($ThisFileInfo['fileformat']))
- {
-
- echo ' (<span style="color: #990099;">unknown file type</span>)';
-
- }
- else
- {
-
- if (! empty($ThisFileInfo['error']))
- {
- echo ' (<span style="color: #FF0000;">errors</span>)';
- }
- elseif (! empty($ThisFileInfo['warning']))
- {
- echo ' (<span style="color: #FF9999;">warnings</span>)';
- }
- else
- {
- echo ' (<span style="color: #009900;">OK</span>)';
- }
-
- $this_track_track = '';
- if (! empty($ThisFileInfo['comments']['track']))
- {
- foreach ($ThisFileInfo['comments']['track'] as $key => $value)
- {
- if (strlen($value) > strlen($this_track_track))
- {
- $this_track_track = str_pad($value, 2, '0', STR_PAD_LEFT);
- }
- }
- if (ereg('^([0-9]+)/([0-9]+)$', $this_track_track, $matches))
- {
- // change "1/5"->"01/05", "3/12"->"03/12", etc
- $this_track_track = str_pad($matches[1], 2, '0', STR_PAD_LEFT) . '/' . str_pad($matches[2], 2, '0', STR_PAD_LEFT);
- }
- }
-
- $this_track_remix = '';
- $this_track_title = '';
- if (! empty($ThisFileInfo['comments']['title']))
- {
- foreach ($ThisFileInfo['comments']['title'] as $possible_title)
- {
- if (strlen($possible_title) > strlen($this_track_title))
- {
- $this_track_title = $possible_title;
- }
- }
- }
-
- $ParenthesesPairs = array('()', '[]', '{}');
- foreach ($ParenthesesPairs as $pair)
- {
- if (preg_match_all('/(.*) ' . preg_quote($pair{0}) . '(([^' . preg_quote($pair) . ']*[\- ' . preg_quote($pair{0}) . '])?(cut|dub|edit|version|live|reprise|[a-z]*mix))' . preg_quote($pair{1}) . '/iU', $this_track_title, $matches))
- {
- $this_track_title = $matches[1][0];
- $this_track_remix = implode("\t", $matches[2]);
- }
- }
-
- if (! empty($_REQUEST['rescanerrors']))
- {
-
- $SQLquery = 'UPDATE `' . GETID3_DB_TABLE . '` SET ';
- $SQLquery .= '`LastModified` = "' . mysql_escape_string(@$ThisFileInfo['file_modified_time']) . '", ';
- $SQLquery .= '`md5_file` = "' . mysql_escape_string(@$ThisFileInfo['md5_file']) . '", ';
- $SQLquery .= '`md5_data` = "' . mysql_escape_string(@$ThisFileInfo['md5_data']) . '", ';
- $SQLquery .= '`md5_data_source` = "' . mysql_escape_string(@$ThisFileInfo['md5_data_source']) . '", ';
- $SQLquery .= '`filesize` = "' . mysql_escape_string(@$ThisFileInfo['filesize']) . '", ';
- $SQLquery .= '`fileformat` = "' . mysql_escape_string(@$ThisFileInfo['fileformat']) . '", ';
- $SQLquery .= '`audio_dataformat` = "' . mysql_escape_string(@$ThisFileInfo['audio']['dataformat']) . '", ';
- $SQLquery .= '`video_dataformat` = "' . mysql_escape_string(@$ThisFileInfo['video']['dataformat']) . '", ';
- $SQLquery .= '`audio_bitrate` = "' . mysql_escape_string(floatval(@$ThisFileInfo['audio']['bitrate'])) . '", ';
- $SQLquery .= '`video_bitrate` = "' . mysql_escape_string(floatval(@$ThisFileInfo['video']['bitrate'])) . '", ';
- $SQLquery .= '`playtime_seconds` = "' . mysql_escape_string(floatval(@$ThisFileInfo['playtime_seconds'])) . '", ';
- $SQLquery .= '`tags` = "' . mysql_escape_string(@implode("\t", @array_keys(@$ThisFileInfo['tags']))) . '", ';
- $SQLquery .= '`artist` = "' . mysql_escape_string(@implode("\t", @$ThisFileInfo['comments']['artist'])) . '", ';
-
- $SQLquery .= '`title` = "' . mysql_escape_string($this_track_title) . '", ';
- $SQLquery .= '`remix` = "' . mysql_escape_string($this_track_remix) . '", ';
-
- $SQLquery .= '`album` = "' . mysql_escape_string(@implode("\t", @$ThisFileInfo['comments']['album'])) . '", ';
- $SQLquery .= '`genre` = "' . mysql_escape_string(@implode("\t", @$ThisFileInfo['comments']['genre'])) . '", ';
- $SQLquery .= '`comment` = "' . mysql_escape_string(@implode("\t", @$ThisFileInfo['comments']['comment'])) . '", ';
-
- $SQLquery .= '`track` = "' . mysql_escape_string($this_track_track) . '", ';
-
- $SQLquery .= '`comments_all` = "' . mysql_escape_string(@serialize(@$ThisFileInfo['comments'])) . '", ';
- $SQLquery .= '`comments_id3v2` = "' . mysql_escape_string(@serialize(@$ThisFileInfo['tags']['id3v2'])) . '", ';
- $SQLquery .= '`comments_ape` = "' . mysql_escape_string(@serialize(@$ThisFileInfo['tags']['ape'])) . '", ';
- $SQLquery .= '`comments_lyrics3` = "' . mysql_escape_string(@serialize(@$ThisFileInfo['tags']['lyrics3'])) . '", ';
- $SQLquery .= '`comments_id3v1` = "' . mysql_escape_string(@serialize(@$ThisFileInfo['tags']['id3v1'])) . '", ';
- $SQLquery .= '`warning` = "' . mysql_escape_string(@implode("\t", @$ThisFileInfo['warning'])) . '", ';
- $SQLquery .= '`error` = "' . mysql_escape_string(@implode("\t", @$ThisFileInfo['error'])) . '", ';
- $SQLquery .= '`encoder_options` = "' . mysql_escape_string(trim(@$ThisFileInfo['audio']['encoder'] . ' ' . @$ThisFileInfo['audio']['encoder_options'])) . '", ';
- $SQLquery .= '`vbr_method` = "' . mysql_escape_string(@$ThisFileInfo['mpeg']['audio']['VBR_method']) . '", ';
- $SQLquery .= '`track_volume` = "' . mysql_escape_string(floatval(@$ThisFileInfo['replay_gain']['track']['volume'])) . '" ';
- $SQLquery .= 'WHERE (`filename` = "' . mysql_escape_string(@$ThisFileInfo['filenamepath']) . '")';
-
- }
- elseif (! empty($_REQUEST['scan']) || ! empty($_REQUEST['newscan']))
- {
-
- $SQLquery = 'INSERT INTO `' . GETID3_DB_TABLE . '` (`filename`, `LastModified`, `md5_file`, `md5_data`, `md5_data_source`, `filesize`, `fileformat`, `audio_dataformat`, `video_dataformat`, `audio_bitrate`, `video_bitrate`, `playtime_seconds`, `tags`, `artist`, `title`, `remix`, `album`, `genre`, `comment`, `track`, `comments_all`, `comments_id3v2`, `comments_ape`, `comments_lyrics3`, `comments_id3v1`, `warning`, `error`, `encoder_options`, `vbr_method`, `track_volume`) VALUES (';
- $SQLquery .= '"' . mysql_escape_string(@$ThisFileInfo['filenamepath']) . '", ';
- $SQLquery .= '"' . mysql_escape_string(@$ThisFileInfo['file_modified_time']) . '", ';
- $SQLquery .= '"' . mysql_escape_string(@$ThisFileInfo['md5_file']) . '", ';
- $SQLquery .= '"' . mysql_escape_string(@$ThisFileInfo['md5_data']) . '", ';
- $SQLquery .= '"' . mysql_escape_string(@$ThisFileInfo['md5_data_source']) . '", ';
- $SQLquery .= '"' . mysql_escape_string(@$ThisFileInfo['filesize']) . '", ';
- $SQLquery .= '"' . mysql_escape_string(@$ThisFileInfo['fileformat']) . '", ';
- $SQLquery .= '"' . mysql_escape_string(@$ThisFileInfo['audio']['dataformat']) . '", ';
- $SQLquery .= '"' . mysql_escape_string(@$ThisFileInfo['video']['dataformat']) . '", ';
- $SQLquery .= '"' . mysql_escape_string(floatval(@$ThisFileInfo['audio']['bitrate'])) . '", ';
- $SQLquery .= '"' . mysql_escape_string(floatval(@$ThisFileInfo['video']['bitrate'])) . '", ';
- $SQLquery .= '"' . mysql_escape_string(floatval(@$ThisFileInfo['playtime_seconds'])) . '", ';
- $SQLquery .= '"' . mysql_escape_string(@implode("\t", @array_keys(@$ThisFileInfo['tags']))) . '", ';
- $SQLquery .= '"' . mysql_escape_string(@implode("\t", @$ThisFileInfo['comments']['artist'])) . '", ';
-
- $SQLquery .= '"' . mysql_escape_string($this_track_title) . '", ';
- $SQLquery .= '"' . mysql_escape_string($this_track_remix) . '", ';
-
- $SQLquery .= '"' . mysql_escape_string(@implode("\t", @$ThisFileInfo['comments']['album'])) . '", ';
- $SQLquery .= '"' . mysql_escape_string(@implode("\t", @$ThisFileInfo['comments']['genre'])) . '", ';
- $SQLquery .= '"' . mysql_escape_string(@implode("\t", @$ThisFileInfo['comments']['comment'])) . '", ';
-
- $SQLquery .= '"' . mysql_escape_string($this_track_track) . '", ';
-
- $SQLquery .= '"' . mysql_escape_string(@serialize(@$ThisFileInfo['comments'])) . '", ';
- $SQLquery .= '"' . mysql_escape_string(@serialize(@$ThisFileInfo['tags']['id3v2'])) . '", ';
- $SQLquery .= '"' . mysql_escape_string(@serialize(@$ThisFileInfo['tags']['ape'])) . '", ';
- $SQLquery .= '"' . mysql_escape_string(@serialize(@$ThisFileInfo['tags']['lyrics3'])) . '", ';
- $SQLquery .= '"' . mysql_escape_string(@serialize(@$ThisFileInfo['tags']['id3v1'])) . '", ';
- $SQLquery .= '"' . mysql_escape_string(@implode("\t", @$ThisFileInfo['warning'])) . '", ';
- $SQLquery .= '"' . mysql_escape_string(@implode("\t", @$ThisFileInfo['error'])) . '", ';
- $SQLquery .= '"' . mysql_escape_string(trim(@$ThisFileInfo['audio']['encoder'] . ' ' . @$ThisFileInfo['audio']['encoder_options'])) . '", ';
- $SQLquery .= '"' . mysql_escape_string(! empty($ThisFileInfo['mpeg']['audio']['LAME']) ? 'LAME' : @$ThisFileInfo['mpeg']['audio']['VBR_method']) . '", ';
- $SQLquery .= '"' . mysql_escape_string(floatval(@$ThisFileInfo['replay_gain']['track']['volume'])) . '")';
-
- }
- flush();
- safe_mysql_query($SQLquery);
- }
-
- }
-
- $SQLquery = 'OPTIMIZE TABLE `' . GETID3_DB_TABLE . '`';
- safe_mysql_query($SQLquery);
-
- echo '<hr>Done scanning!<hr>';
-
- }
- elseif (! empty($_REQUEST['missingtrackvolume']))
- {
-
- $MissingTrackVolumeFilesScanned = 0;
- $MissingTrackVolumeFilesAdjusted = 0;
- $MissingTrackVolumeFilesDeleted = 0;
- $SQLquery = 'SELECT `filename`';
- $SQLquery .= ' FROM `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' WHERE (`track_volume` = "0")';
- $SQLquery .= ' AND (`audio_bitrate` > "0")';
- $result = safe_mysql_query($SQLquery);
- echo 'Scanning <span ID="missingtrackvolumeNowScanning">0</span> / ' . number_format(mysql_num_rows($result)) . ' files for track volume information:<hr>';
- while ($row = mysql_fetch_array($result))
- {
- set_time_limit(30);
- echo '<script type="text/javascript">if (document.getElementById("missingtrackvolumeNowScanning")) document.getElementById("missingtrackvolumeNowScanning").innerHTML = "' . number_format($MissingTrackVolumeFilesScanned ++) . '";</script>. ';
- flush();
- if (file_exists($row['filename']))
- {
-
- $ThisFileInfo = $getID3->analyze($row['filename']);
- if (! empty($ThisFileInfo['replay_gain']['track']['volume']))
- {
- $MissingTrackVolumeFilesAdjusted ++;
- $SQLquery = 'UPDATE `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' SET `track_volume` = "' . $ThisFileInfo['replay_gain']['track']['volume'] . '"';
- $SQLquery .= ' WHERE (`filename` = "' . mysql_escape_string($row['filename']) . '")';
- safe_mysql_query($SQLquery);
- }
-
- }
- else
- {
-
- $MissingTrackVolumeFilesDeleted ++;
- $SQLquery = 'DELETE FROM `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' WHERE (`filename` = "' . mysql_escape_string($row['filename']) . '")';
- safe_mysql_query($SQLquery);
-
- }
- }
- echo '<hr>Scanned ' . number_format($MissingTrackVolumeFilesScanned) . ' files with no track volume information.<br>';
- echo 'Found track volume information for ' . number_format($MissingTrackVolumeFilesAdjusted) . ' of them (could not find info for ' . number_format($MissingTrackVolumeFilesScanned - $MissingTrackVolumeFilesAdjusted) . ' files; deleted ' . number_format($MissingTrackVolumeFilesDeleted) . ' records of missing files)<hr>';
-
- }
- elseif (! empty($_REQUEST['deadfilescheck']))
- {
-
- $SQLquery = 'SELECT COUNT(*) AS `num`, `filename`';
- $SQLquery .= ' FROM `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' GROUP BY `filename`';
- $SQLquery .= ' ORDER BY `num` DESC';
- $result = safe_mysql_query($SQLquery);
- $DupesDeleted = 0;
- while ($row = mysql_fetch_array($result))
- {
- set_time_limit(30);
- if ($row['num'] <= 1)
- {
- break;
- }
- echo '<br>' . FixTextFields($row['filename']) . ' (<font color="#FF9999">duplicate</font>)';
- $SQLquery = 'DELETE FROM `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' WHERE `filename` LIKE "' . mysql_escape_string($row['filename']) . '"';
- safe_mysql_query($SQLquery);
- $DupesDeleted ++;
- }
- if ($DupesDeleted > 0)
- {
- echo '<hr>Deleted <b>' . number_format($DupesDeleted) . '</b> duplicate filenames<hr>';
- }
-
- $SQLquery = 'SELECT `filename`, `filesize`, `LastModified`';
- $SQLquery .= ' FROM `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' ORDER BY `filename` ASC';
- $result = safe_mysql_query($SQLquery);
- $totalchecked = 0;
- $totalremoved = 0;
- $previousdir = '';
- while ($row = mysql_fetch_array($result))
- {
- $totalchecked ++;
- set_time_limit(30);
- $reason = '';
- if (! file_exists($row['filename']))
- {
- $reason = 'deleted';
- }
- elseif (filesize($row['filename']) != $row['filesize'])
- {
- $reason = 'filesize changed';
- }
- elseif (filemtime($row['filename']) != $row['LastModified'])
- {
- if (abs(filemtime($row['filename']) - $row['LastModified']) != 3600)
- {
- // off by exactly one hour == daylight savings time
- $reason = 'last-modified time changed';
- }
- }
-
- $thisdir = dirname($row['filename']);
- if ($reason)
- {
-
- $totalremoved ++;
- echo '<br>' . FixTextFields($row['filename']) . ' (<font color="#FF9999">' . $reason . '</font>)';
- flush();
- $SQLquery = 'DELETE FROM `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' WHERE (`filename` = "' . mysql_escape_string($row['filename']) . '")';
- safe_mysql_query($SQLquery);
-
- }
- elseif ($thisdir != $previousdir)
- {
-
- echo '. ';
- flush();
-
- }
- $previousdir = $thisdir;
- }
-
- echo '<hr><b>' . number_format($totalremoved) . ' of ' . number_format($totalchecked) . ' files in database no longer exist, or have been altered since last scan. Removed from database.</b><hr>';
-
- }
- elseif (! empty($_REQUEST['encodedbydistribution']))
- {
-
- if (! empty($_REQUEST['m3u']))
- {
-
- header('Content-type: audio/x-mpegurl');
- echo '#EXTM3U' . "\n";
-
- $SQLquery = 'SELECT `filename`, `comments_id3v2`';
- $SQLquery .= ' FROM `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' WHERE (`encoder_options` = "' . mysql_escape_string($_REQUEST['encodedbydistribution']) . '")';
- $result = mysql_query($SQLquery);
- $NonBlankEncodedBy = '';
- $BlankEncodedBy = '';
- while ($row = mysql_fetch_array($result))
- {
- set_time_limit(30);
- $CommentArray = unserialize($row['comments_id3v2']);
- if (isset($CommentArray['encoded_by'][0]))
- {
- $NonBlankEncodedBy .= WindowsShareSlashTranslate($row['filename']) . "\n";
- }
- else
- {
- $BlankEncodedBy .= WindowsShareSlashTranslate($row['filename']) . "\n";
- }
- }
- echo $NonBlankEncodedBy;
- echo $BlankEncodedBy;
- exit();
-
- }
- elseif (! empty($_REQUEST['showfiles']))
- {
-
- echo '<a href="' . htmlentities($_SERVER['PHP_SELF'] . '?encodedbydistribution=' . urlencode('%')) . '">show all</a><br>';
- echo '<table border="1">';
-
- $SQLquery = 'SELECT `filename`, `comments_id3v2`';
- $SQLquery .= ' FROM `' . GETID3_DB_TABLE . '`';
- $result = mysql_query($SQLquery);
- while ($row = mysql_fetch_array($result))
- {
- set_time_limit(30);
- $CommentArray = unserialize($row['comments_id3v2']);
- if (($_REQUEST['encodedbydistribution'] == '%') || (! empty($CommentArray['encoded_by'][0]) && ($_REQUEST['encodedbydistribution'] == $CommentArray['encoded_by'][0])))
- {
- echo '<tr><td><a href="' . htmlentities($_SERVER['PHP_SELF'] . '?m3ufilename=' . urlencode($row['filename'])) . '">m3u</a></td>';
- echo '<td><a href="' . htmlentities('demo.browse.php?filename=' . rawurlencode($row['filename'])) . '">' . FixTextFields($row['filename']) . '</a></td></tr>';
- }
- }
- echo '</table>';
-
- }
- else
- {
-
- $SQLquery = 'SELECT `encoder_options`, `comments_id3v2`';
- $SQLquery .= ' FROM `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' ORDER BY (`encoder_options` LIKE "LAME%") DESC, (`encoder_options` LIKE "CBR%") DESC';
- $result = mysql_query($SQLquery);
- $EncodedBy = array();
- while ($row = mysql_fetch_array($result))
- {
- set_time_limit(30);
- $CommentArray = unserialize($row['comments_id3v2']);
- if (isset($EncodedBy[$row['encoder_options']][@$CommentArray['encoded_by'][0]]))
- {
- $EncodedBy[$row['encoder_options']][@$CommentArray['encoded_by'][0]] ++;
- }
- else
- {
- $EncodedBy[$row['encoder_options']][@$CommentArray['encoded_by'][0]] = 1;
- }
- }
- echo '<a href="' . htmlentities($_SERVER['PHP_SELF'] . '?encodedbydistribution=' . urlencode('%') . '&m3u=1') . '">.m3u version</a><br>';
- echo '<table border="1"><tr><th>m3u</th><th>Encoder Options</th><th>Encoded By (ID3v2)</th></tr>';
- foreach ($EncodedBy as $key => $value)
- {
- echo '<tr><TD VALIGN="TOP"><a href="' . htmlentities($_SERVER['PHP_SELF'] . '?encodedbydistribution=' . urlencode($key) . '&showfiles=1&m3u=1') . '">m3u</a></td>';
- echo '<TD VALIGN="TOP"><b>' . $key . '</b></td>';
- echo '<td><table border="0" WIDTH="100%">';
- arsort($value);
- foreach ($value as $string => $count)
- {
- echo '<tr><TD ALIGN="RIGHT" WIDTH="50"><i>' . number_format($count) . '</i></td><td> </td>';
- echo '<td><a href="' . htmlentities($_SERVER['PHP_SELF'] . '?encodedbydistribution=' . urlencode($string) . '&showfiles=1') . '">' . $string . '</a></td></tr>';
- }
- echo '</table></td></tr>';
- }
- echo '</table>';
-
- }
-
- }
- elseif (! empty($_REQUEST['audiobitrates']))
- {
-
- getid3_lib :: IncludeDependency(GETID3_INCLUDEPATH . 'module.audio.mp3.php', __FILE__, true);
- $BitrateDistribution = array();
- $SQLquery = 'SELECT ROUND(audio_bitrate / 1000) AS `RoundBitrate`, COUNT(*) AS `num`';
- $SQLquery .= ' FROM `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' WHERE (`audio_bitrate` > 0)';
- $SQLquery .= ' GROUP BY `RoundBitrate`';
- $result = safe_mysql_query($SQLquery);
- while ($row = mysql_fetch_array($result))
- {
- @$BitrateDistribution[getid3_mp3 :: ClosestStandardMP3Bitrate($row['RoundBitrate'] * 1000)] += $row['num']; // safe_inc
- }
-
- echo '<table border="1" cellspacing="0" cellpadding="3">';
- echo '<tr><th>Bitrate</th><th>Count</th></tr>';
- foreach ($BitrateDistribution as $Bitrate => $Count)
- {
- echo '<tr>';
- echo '<TD ALIGN="RIGHT">' . round($Bitrate / 1000) . ' kbps</td>';
- echo '<TD ALIGN="RIGHT">' . number_format($Count) . '</td>';
- echo '</tr>';
- }
- echo '</table>';
-
- }
- elseif (! empty($_REQUEST['emptygenres']))
- {
-
- $SQLquery = 'SELECT `fileformat`, `filename`, `genre`';
- $SQLquery .= ' FROM `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' WHERE (`genre` = "")';
- $SQLquery .= ' OR (`genre` = "Unknown")';
- $SQLquery .= ' OR (`genre` = "Other")';
- $SQLquery .= ' ORDER BY `filename` ASC';
- $result = safe_mysql_query($SQLquery);
-
- if (! empty($_REQUEST['m3u']))
- {
-
- header('Content-type: audio/x-mpegurl');
- echo '#EXTM3U' . "\n";
- while ($row = mysql_fetch_array($result))
- {
- if (! in_array($row['fileformat'], $IgnoreNoTagFormats))
- {
- echo WindowsShareSlashTranslate($row['filename']) . "\n";
- }
- }
- exit();
-
- }
- else
- {
-
- echo '<a href="' . htmlentities($_SERVER['PHP_SELF'] . '?emptygenres=' . urlencode($_REQUEST['emptygenres']) . '&m3u=1') . '">.m3u version</a><br>';
- $EmptyGenreCounter = 0;
- echo '<table border="1" cellspacing="0" cellpadding="3">';
- echo '<tr><th>m3u</th><th>filename</th></tr>';
- while ($row = mysql_fetch_array($result))
- {
- if (! in_array($row['fileformat'], $IgnoreNoTagFormats))
- {
- $EmptyGenreCounter ++;
- echo '<tr>';
- echo '<td><a href="' . htmlentities($_SERVER['PHP_SELF'] . '?m3ufilename=' . urlencode($row['filename'])) . '">m3u</a></td>';
- echo '<td><a href="' . htmlentities('demo.browse.php?filename=' . rawurlencode($row['filename'])) . '">' . FixTextFields($row['filename']) . '</a></td>';
- echo '</tr>';
- }
- }
- echo '</table>';
- echo '<b>' . number_format($EmptyGenreCounter) . '</b> files with empty genres';
-
- }
-
- }
- elseif (! empty($_REQUEST['nonemptycomments']))
- {
-
- $SQLquery = 'SELECT `filename`, `comment`';
- $SQLquery .= ' FROM `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' WHERE (`comment` <> "")';
- $SQLquery .= ' ORDER BY `comment` ASC';
- $result = safe_mysql_query($SQLquery);
-
- if (! empty($_REQUEST['m3u']))
- {
-
- header('Content-type: audio/x-mpegurl');
- echo '#EXTM3U' . "\n";
- while ($row = mysql_fetch_array($result))
- {
- echo WindowsShareSlashTranslate($row['filename']) . "\n";
- }
- exit();
-
- }
- else
- {
-
- $NonEmptyCommentsCounter = 0;
- echo '<a href="' . htmlentities($_SERVER['PHP_SELF'] . '?nonemptycomments=' . urlencode($_REQUEST['nonemptycomments']) . '&m3u=1') . '">.m3u version</a><br>';
- echo '<table border="1" cellspacing="0" cellpadding="3">';
- echo '<tr><th>m3u</th><th>filename</th><th>comments</th></tr>';
- while ($row = mysql_fetch_array($result))
- {
- $NonEmptyCommentsCounter ++;
- echo '<tr>';
- echo '<td><a href="' . htmlentities($_SERVER['PHP_SELF'] . '?m3ufilename=' . urlencode($row['filename'])) . '">m3u</a></td>';
- echo '<td><a href="' . htmlentities('demo.browse.php?filename=' . rawurlencode($row['filename'])) . '">' . FixTextFields($row['filename']) . '</a></td>';
- if (strlen(trim($row['comment'])) > 0)
- {
- echo '<td>' . FixTextFields($row['comment']) . '</td>';
- }
- else
- {
- echo '<td><i>space</i></td>';
- }
- echo '</tr>';
- }
- echo '</table>';
- echo '<b>' . number_format($NonEmptyCommentsCounter) . '</b> files with non-empty comments';
-
- }
-
- }
- elseif (! empty($_REQUEST['trackzero']))
- {
-
- $SQLquery = 'SELECT `filename`, `track`';
- $SQLquery .= ' FROM `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' WHERE (`track` <> "")';
- $SQLquery .= ' AND ((`track` < "1")';
- $SQLquery .= ' OR (`track` > "99"))';
- $SQLquery .= ' ORDER BY `filename` ASC';
- $result = safe_mysql_query($SQLquery);
-
- if (! empty($_REQUEST['m3u']))
- {
-
- header('Content-type: audio/x-mpegurl');
- echo '#EXTM3U' . "\n";
- while ($row = mysql_fetch_array($result))
- {
- if ((strlen($row['track']) > 0) && ($row['track'] < 1) || ($row['track'] > 99))
- {
- echo WindowsShareSlashTranslate($row['filename']) . "\n";
- }
- }
- exit();
-
- }
- else
- {
-
- echo '<a href="' . htmlentities($_SERVER['PHP_SELF'] . '?trackzero=' . urlencode($_REQUEST['trackzero']) . '&m3u=1') . '">.m3u version</a><br>';
- $TrackZeroCounter = 0;
- echo '<table border="1" cellspacing="0" cellpadding="3">';
- echo '<tr><th>m3u</th><th>filename</th><th>track</th></tr>';
- while ($row = mysql_fetch_array($result))
- {
- if ((strlen($row['track']) > 0) && ($row['track'] < 1) || ($row['track'] > 99))
- {
- $TrackZeroCounter ++;
- echo '<tr>';
- echo '<td><a href="' . htmlentities($_SERVER['PHP_SELF'] . '?m3ufilename=' . urlencode($row['filename'])) . '">m3u</a></td>';
- echo '<td><a href="' . htmlentities('demo.browse.php?filename=' . rawurlencode($row['filename'])) . '">' . FixTextFields($row['filename']) . '</a></td>';
- echo '<td>' . FixTextFields($row['track']) . '</td>';
- echo '</tr>';
- }
- }
- echo '</table>';
- echo '<b>' . number_format($TrackZeroCounter) . '</b> files with track "zero"';
-
- }
-
- }
- elseif (! empty($_REQUEST['titlefeat']))
- {
-
- $SQLquery = 'SELECT `filename`, `title`';
- $SQLquery .= ' FROM `' . GETID3_DB_TABLE . '`';
- $SQLquery .= ' WHERE (`title` LIKE "%feat.%")';
- $SQLquery .= ' ORDER BY `filename` ASC';
- $result = safe_mysql_query($SQLquery);
-
- if (! empty($_REQUEST['m3u']))
- {
-
- header('Content-type: audio/x-mpegurl');
- echo '#EXTM3U' . "\n";
- while ($row = mysql_fetch_array($result))
- {
- echo WindowsShareSlashTranslate($row['filename']) . "\n";
- }
- exit();
-
- }
- else
- {
-
- echo '<b>' . number_format(mysql_num_rows($result)) . '</b> files with "feat." in the title (instead of the artist)<br><br>';
- echo '<a href="' . htmlentities($_SERVER['PHP_SELF'] . '?titlefeat=' . urlencode($_REQUEST['titlefeat']) . '&m3u=1') . '">.m3u version</a><br>';
- echo '<table border="1" cellspacing="0" cellpadding="3">';
- echo '<tr><th>m3u</th><th>filename</th><th>title</th></tr>';
- while ($row = mysql_fetch_array($result))
- {
- echo '<tr>';
- echo '<td><a href="' . htmlentities($_SERVER['PHP_SELF'] . '?m3ufilename=' . urlencode($row['filename'])) . '">m3u</a></td>';
- echo '<td><a href="' . htmlentities('demo.browse.php?filename=' . rawurlencode($row['filename'])) . '">' . FixTextFields($row['filename']) . '</a></td>';
- echo …
Large files files are truncated, but you can click here to view the full file