All pastes #475895 Raw Edit

Someone

public php v1 · immutable
·published 2007-05-07 19:23 UTC
rendered paste body
<?php/*** Produce an XPSF playlist on the fly from files in a given folder** Code by Lewis Smith www.lasmit.com* Code released under GNU General Public Licence - http://www.gnu.org/licenses/gpl.html* * If you use this software and find it useful please drop me an email - lewis@lasmit.com* I'd like to build a list of people using the script which I'll publish on my site, so please do get in touch.* Code uses snippets from http://getid3.sourceforge.net/source2/demo.browse.dhtml.phps* Using getID3 library from http://getid3.sourceforge.net/*/$base_url = str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['PHP_SELF']);// Definitionsdefine("ROOT", $_SERVER["HTTP_HOST"]);                            // This is your domain name, can probably be leftdefine("PATH", "/home/damonp/ypsielbow.com/live/2007/");    // This is the full physical root to your folder, can probably be leftdefine("MP3_PATH", $base_url);                                  // This is the virtual path to the folder containing your MP3s,                                                                 // e.g. if your files are at http://www.me.com/files/mp3s then this should                                                                // be set to files/mp3srequire_once('../getid3/getid3.php');                           // Include the getId3 library// Create ID3 object$getid3 = new getID3;$getid3->encoding = 'ISO 8859-1';$dir = PATH . "/" . MP3_PATH;// Read directoryif (is_dir($dir)) {    if ($dh = opendir($dir)) {        while (($file = readdir($dh)) !== false) {            $full_name = "$dir/$file";            if (is_file($full_name)) {                $files[$full_name] = $file;            }            elseif ($file[0] != '.') {                $dir[$full_name] = $file;            }       }       closedir($dh);   }}// Produce outputif ($files) {        print <<< END_HEADER<?xml version="1.0" encoding="UTF-8"?><playlist version="1" xmlns="http://xspf.org/ns/0/">    <!-- Playlist generated automatically using script from www.lasmit.com -->        <trackList>END_HEADER;    if ($_REQUEST['shuffle']=="true") {        shuffle($files);    } else {        asort($files);    }        $counter = $i = 0;    foreach ($files as $full_name => $short_name) {        $getid3->Analyze($dir . "/" . $short_name);                    $artist = $title = '';            if (@$getid3->info['tags']) {            foreach ($getid3->info['tags'] as $tag => $tag_info) {                if (@$getid3->info['tags'][$tag]['title']) {                    $artist = @$getid3->info['tags'][$tag]['artist'][0];                    $title  = @$getid3->info['tags'][$tag]['title'][0];                    $album  = @$getid3->info['tags'][$tag]['album'][0];                    break;                } else {                $title  = basename($short_name, ".mp3");                }            }        } else {        $title = basename($short_name, ".mp3");        }                $url = ROOT . "/" . MP3_PATH . "/" . $short_name;                if (strpos($url, "http://") === false) {            $url = "http://" . $url;        }                $info = ROOT;                if (strpos($info, "http://") === false) {            $info = "http://" . $info;        }                print <<< END_TRACK        <track>            <location>{$url}</location>                        <!-- artist or band name -->            <creator>{$artist}</creator>                        <!-- album name -->            <album>{$album}</album>                        <!-- name of the song -->            <title>{$title}</title>        </track>    END_TRACK;    }    print <<< END_FOOTER    </trackList></playlist>END_FOOTER;}?>