| 
<?php/**
 * This script is to demo the functionality of WaldScan
 *
 * change the $test variable to one on your server
 *
 * change the $ext variable to a file list that you want to view
 */
 
 /**
 * require the WaldScan class file
 */
 require_once ('dirscan.class.php');
 // $test=$_SERVER['DOCUMENT_ROOT'];
 // no need to esscape your directories, it will fail if you do
 
 $test = "/Volumes/DRAWING_BOARD/MacBook/Music/";
 $ext = "'png,jpg,avi,mkv,mp3,m4b'";
 // taboo directory tester
 // $test='/sbin';
 // $test='/etc';
 // $test='/private';
 foreach ( $_GET as $key => $value ) {
 switch ($key) {
 case 'json' :
 $dir = new WaldScan ( $test );
 if (isset ( $value ) && $value != '/') {
 $dir->dirs = $value;
 }
 $dir->search_match = explode ( ',', $ext );
 $dir->printJSON ();
 break;
 case 'jsondir' :
 if (isset ( $value ) && $value != '/') {
 $base = $test . $value;
 } else {
 $base = $test;
 }
 $dir = new WaldScan ( $base );
 $dir->search_match = explode ( ',', $ext );
 $dir->printJSONdirs ();
 break;
 case 'stream' :
 $dir = new WaldScan ( $test );
 $dir->file = $value;
 $dir->streamFile ();
 break;
 }
 }
 
 ?>
 <h1>WaldScan</h1>
 <pre>
 --------------------------------------------------------------------------------
 
 WaldScan is a PHP 5 class that will recursively scan the given directory for a
 list of selected file types. This can scan your directories for media files,
 documents and/or images. You are required to pass a valid full path directory or
 the DOCUMENT_ROOT will be used for the root if nothing is passed. A list of
 default banned directories has been set to avoid potentially dangerous results
 for you and I; You don't want someone to get access to your /etc, /var or
 /private directories. These directories can be cleared if you need to use those
 directories for say a PHP CLI or PHP-GTK utility.
 
 This class has many uses for any web page that serves files over http/https, a
 CLI program that does batch processing of files or in cron jobs for caching file
 data for faster access.  getID3 is a great project that would work well with
 this class for accessing meta data in many media file formats; caching the id3
 data to one of the database caching modules would greatly improve the
 performance of your web site. This class can be a little slow scanning many
 files stored on a network share (over wifi), just keep this in mind if you want
 to use network shares on a live website with many users and no caching.
 
 --------------------------------------------------------------------------------
 * Wald is the German word for forest/woods, since this is dealing with multiple
 * directory trees it seem appropriate
 --------------------------------------------------------------------------------
 </pre>
 <div style="position: absolute; top: 1px; right: 1px;">
 <h3>View class functions output</h3>
 <p style="width: 300px;">
 edit the <strong><?php echo $_SERVER['SCRIPT_NAME']; ?></strong>
 file's <strong>$test</strong> variable from [ <em><?php echo $test; ?></em>
 ] to something on your computer
 </p>
 <?php
 foreach ( array (
 'getdirs',
 'getfiles',
 'realfile',
 'realdir',
 'json',
 'jsondir'
 ) as $k ) {
 echo '<a href="' . $_SERVER ['SCRIPT_NAME'] . '?' . $k . '=/">' . $k . ' </a><br />';
 }
 ?>
 </div>
 <hr />
 <?php
 /**
 * inspect $_GET for view requests
 */
 foreach ( $_GET as $key => $value ) {
 switch ($key) {
 case 'realdir' :
 $dir = new WaldScan ( $test );
 if (isset ( $value ) && $value != '/') {
 if (is_dir ( $test . $value )) {
 $dir->dirs = $value;
 } elseif (is_file ( $test . $value )) {
 $dir->file = $value;
 }
 }
 $d = $dir->getRealDirsList;
 echo 'List of directories in ' . $test . '<br />This PHP code will give you this Array:<hr />';
 echo '$dir=new WaldScan($test);<br />$d=$dir->getRealDirsList;';
 echo '<pre>';
 print_r ( $d );
 echo '</pre>';
 break;
 case 'realfile' :
 $dir = new WaldScan ( $test );
 // search for search file type match
 $dir->search_match = explode ( ',', $ext );
 if (isset ( $value ) && $value != '/') {
 if (is_dir ( $test . $value )) {
 $dir->dirs = $value;
 } elseif (is_file ( $test . $value )) {
 $dir->file = $value;
 }
 }
 $r = $dir->getRealFilesList;
 echo 'List of directories in ' . $test . '<br />This PHP code will give you this Array:<hr />';
 echo '$dir=new WaldScan($test);<br />$dir->search_match="'.$ext.'";<br />$f=$dir->getRealFilesList;';
 echo '<pre>';
 print_r ( $r );
 echo '</pre>';
 
 break;
 case 'getfiles' :
 $dir = new WaldScan ( $test );
 $dir->search_match = explode ( ',', $ext );
 if (isset ( $value ) && $value != '/') {
 if (is_dir ( $test . $value )) {
 $dir->dirs = $value;
 } elseif (is_file ( $test . $value )) {
 $dir->file = $value;
 }
 }
 $f = $dir->getFilesList;
 echo 'List of all files in ' . $test . ', this array is useful for building RESTful resourses from directories<br /> This PHP Code will give you this Array: <hr />';
 echo '$dir=new WaldScan($test);<br />$dir->search_match="'.$ext.'";<br />$f=$dir->getFilesList;';
 echo '<pre>';
 print_r ( $f );
 echo '</pre>';
 break;
 case 'getdirs' :
 $dir = new WaldScan ( $test );
 $dir->search_match = explode ( ',', $ext );
 $f = $dir->getDirsList;
 echo 'List of all files in ' . $test . ', this array is useful for building RESTful resourses from directories<br /> This PHP Code will give you this Array: <hr />';
 echo '$dir=new WaldScan($test);<br />$dir->search_match="'.$ext.'";<br />$f=$dir->getDirsList;';
 echo '<pre>';
 print_r ( $f );
 echo '</pre>';
 break;
 }
 }
 
 if (is_object($dir)) echo '<hr /><pre>'.print_r ( $dir, true ).'</pre>';
 ?>
 |