Login   Register  
PHP Classes
elePHPant
Icontem

File: WaldScan.tester.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Karl Holz  >  WaldScan  >  WaldScan.tester.php  >  Download  
File: WaldScan.tester.php
Role: Example script
Content type: text/plain
Description: WaldScan Tester
Class: WaldScan
Scan directories for files with certain extensions
Author: By
Last change:
Date: 1 year ago
Size: 5,743 bytes
 

Contents

Class file image Download
<?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 $dirtrue ).'</pre>';
?>