|
- <?php
- // This script assumes there is at least one normal (non-priority)
- // banner!
-
- // Get the files in a directory, returns null if the directory does
- // not exist.
- function getFilesInDirectory($dir) {
- if (! is_dir($dir)) {
- return null;
- }
-
- return array_diff(scandir($dir), array('.', '..'));
- }
-
- // Serve a random banner and exit.
- function serveRandomBanner($dir, $files) {
- $name = $files[array_rand($files)];
-
- // snags the extension
- $ext = pathinfo($name, PATHINFO_EXTENSION);
-
- // send the right headers
- header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1
- header('Pragma: no-cache'); // HTTP 1.0
- header('Expires: 0'); // Proxies
- header("Content-type: image/" . $ext);
- header("Content-Disposition: inline; filename=" . $name);
-
- // readfile displays the image, passthru seems to spits stream.
- readfile($dir.$name);
- exit;
- }
-
- // Get all the banners
- $bannerDir = "banners/";
- $priorityDir = "banners_priority/";
-
- $banners = getFilesInDirectory($bannerDir);
- $priority = getFilesInDirectory($priorityDir);
-
- // If there are priority banners, serve 1/3rd of the time.
- if($priority !== null && count($priority) !== 0 && rand(0,2) === 0) {
- serveRandomBanner($priorityDir, $priority);
- }
-
- serveRandomBanner($bannerDir, $banners);
- ?>
|