Fifth pass at adding key files
This commit is contained in:
		
							
								
								
									
										95
									
								
								site/runshops/phpthumb/demo/phpThumb.demo.random.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								site/runshops/phpthumb/demo/phpThumb.demo.random.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,95 @@
 | 
			
		||||
<?php
 | 
			
		||||
//////////////////////////////////////////////////////////////
 | 
			
		||||
///  phpThumb() by James Heinrich <info@silisoftware.com>   //
 | 
			
		||||
//        available at http://phpthumb.sourceforge.net     ///
 | 
			
		||||
//////////////////////////////////////////////////////////////
 | 
			
		||||
///                                                         //
 | 
			
		||||
// phpThumb.demo.random.php                                 //
 | 
			
		||||
// James Heinrich <info@silisoftware.com>                   //
 | 
			
		||||
//                                                          //
 | 
			
		||||
// Display a random image from a specified directory.       //
 | 
			
		||||
// Run with no parameters for usage instructions.           //
 | 
			
		||||
//                                                          //
 | 
			
		||||
//////////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
function SelectRandomImage($dirname='.', $portrait=true, $landscape=true, $square=true) {
 | 
			
		||||
	// return a random image filename from $dirname
 | 
			
		||||
	// the last 3 parameters determine what aspect ratio of images
 | 
			
		||||
	// may be returned
 | 
			
		||||
	$possibleimages = array();
 | 
			
		||||
	if ($dh = opendir($dirname)) {
 | 
			
		||||
		while ($file = readdir($dh)) {
 | 
			
		||||
			if (is_file($dirname.'/'.$file) && eregi('\.(jpg|jpeg|gif|png|tiff|bmp)$', $file)) {
 | 
			
		||||
				if ($gis = @GetImageSize($dirname.'/'.$file)) {
 | 
			
		||||
					if ($portrait && ($gis[0] < $gis[1])) {
 | 
			
		||||
						// portrait
 | 
			
		||||
						$possibleimages[] = $file;
 | 
			
		||||
					} elseif ($landscape && ($gis[0] > $gis[1])) {
 | 
			
		||||
						// landscape
 | 
			
		||||
						$possibleimages[] = $file;
 | 
			
		||||
					} elseif ($square) {
 | 
			
		||||
						// square
 | 
			
		||||
						$possibleimages[] = $file;
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		closedir($dh);
 | 
			
		||||
	}
 | 
			
		||||
	if (empty($possibleimages)) {
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
	if (phpversion() < '4.2.0') {
 | 
			
		||||
		mt_srand(time());
 | 
			
		||||
	}
 | 
			
		||||
	$randkey = mt_rand(0, count($possibleimages) - 1);
 | 
			
		||||
	return realpath($dirname.'/'.$possibleimages[$randkey]);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if (@$_REQUEST['dir']) {
 | 
			
		||||
	if (is_dir($_REQUEST['dir'])) {
 | 
			
		||||
 | 
			
		||||
		if (!@$_REQUEST['o']) {
 | 
			
		||||
			$_REQUEST['o'] = 'PLS';
 | 
			
		||||
		}
 | 
			
		||||
		$_REQUEST['o'] = strtoupper($_REQUEST['o']);
 | 
			
		||||
		$portrait  = (strpos(@$_REQUEST['o'], 'P') !== false);
 | 
			
		||||
		$landscape = (strpos(@$_REQUEST['o'], 'L') !== false);
 | 
			
		||||
		$square    = (strpos(@$_REQUEST['o'], 'S') !== false);
 | 
			
		||||
		$randomSRC = SelectRandomImage($_REQUEST['dir'], $portrait, $landscape, $square);
 | 
			
		||||
		if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
 | 
			
		||||
			$randomSRC = str_replace('\\', '/', eregi_replace('^'.realpath(@$_SERVER['DOCUMENT_ROOT']), '', realpath($randomSRC)));
 | 
			
		||||
		} else {
 | 
			
		||||
			$randomSRC = str_replace(realpath(@$_SERVER['DOCUMENT_ROOT']), '', realpath($randomSRC));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$otherParams = array();
 | 
			
		||||
		foreach ($_GET as $key => $value) {
 | 
			
		||||
			if (($key == 'dir') || ($key == 'o')) {
 | 
			
		||||
				continue;
 | 
			
		||||
			}
 | 
			
		||||
			if (is_array($value)) {
 | 
			
		||||
				foreach ($value as $vkey => $vvalue) {
 | 
			
		||||
					$otherParams[] = urlencode($key).'['.urlencode($vkey).']='.urlencode($vvalue);
 | 
			
		||||
				}
 | 
			
		||||
			} else {
 | 
			
		||||
				$otherParams[] = urlencode($key).'='.urlencode($value);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		header('Location: ../phpThumb.php?src='.urlencode($randomSRC).'&'.implode('&', $otherParams));
 | 
			
		||||
		exit;
 | 
			
		||||
 | 
			
		||||
	} else {
 | 
			
		||||
		die($_REQUEST['dir'].' is not a directory');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
} else {
 | 
			
		||||
 | 
			
		||||
	echo '<html><body>Usage: <b>'.basename($_SERVER['PHP_SELF']).'?dir=<i><directory></i>&<i><phpThumb parameters></i></b>&o=<i>(P|L|S)</i><br><br>Examples:<ul>';
 | 
			
		||||
	echo '<li>'.basename($_SERVER['PHP_SELF']).'?./images/&o=L <i>(landscape images only)</i></li>';
 | 
			
		||||
	echo '<li>'.basename($_SERVER['PHP_SELF']).'?./images/&o=PS <i>(portrait or square images only)</i></li>';
 | 
			
		||||
	echo '</ul></body></html>';
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
		Reference in New Issue
	
	Block a user