|
|
@@ -1,21 +1,47 @@ |
|
|
|
<?php |
|
|
|
//renaming to b.php |
|
|
|
$dir = "banners/"; |
|
|
|
$files = scandir($dir); |
|
|
|
$images = array_diff($files, array('.', '..')); |
|
|
|
$name = $images[array_rand($images)]; |
|
|
|
|
|
|
|
// snags the extension |
|
|
|
$img_extension = 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/" . $img_extension); |
|
|
|
header("Content-Disposition: inline; filename=" . $name); |
|
|
|
|
|
|
|
// readfile displays the image, passthru seems to spits stream. |
|
|
|
readfile($dir.$name); |
|
|
|
exit; |
|
|
|
// 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); |
|
|
|
?> |