Perl Script in Apache

Jack Stone antennex at hotmail.com
Mon May 7 13:40:59 UTC 2007


>From: White Hat <pigskin_referee at yahoo.com>
>To: FreeBSD Users Questions <freebsd-questions at freebsd.org>
>Subject: Perl Script in Apache
>Date: Sat, 5 May 2007 12:17:39 -0700 (PDT)
>
>I tried to get an answer to this on the Apache forum,
>but unfortunately, I was not successful.
>
>Running Apache on a FreeBSD-6.2 machine, I am
>attempting to set up a web page that changes a
>specific image on a daily basis. I found a Perl script
>that is supposed to do this, but it seems to fail. All
>that is displayed is a red [X]. If I run the script
>from the command line, it works, as it should. Well,
>at least it displays the correct file name.
>
>I assume I am doing something wrong with the actual
>web page, or else I am incorrectly calling the Perl
>script.
>
>This is a commented version of the script.
>
>=================================================
>
>To display an image simply use this in your HTML:
><img
>src="/usr/local/www/apache22/data/perl_script.pl">
>
>#!/usr/local/bin/perl
>
># find out the day of the year
>my $day_of_year = (localtime(time()))[7];
>
># define the path where the images live "." is the
>current directory
>$path = "/usr/local/www/apache22/data/pics";
># read all the jpg, gif or png filenames from the
>directory into an array
>opendir(DIR, $path);
>@files = grep { /\.(jpg|gif|png)$/i } readdir(DIR);
>closedir(DIR);
>
># sort the filenames alphabetically
>@files = sort( {lc $a cmp lc $b} @files);
>
># count the number of images
>$no_of_images = scalar(@files);
>
># Now the fun bit :) We loop through the images once
>before
># repeating them in the same order. If we divide the
>current
># number of day of the year by the number of images in
>the
># directory we get the number of times have repeated
>the images.
># We are interested in the remainder of this
>calculation (this
># is calculated using the % operator). Note - there
>must be
># less than 365 images in the directory! We need to
>subtract
># one from this number because arrays start at zero
>not 1!
>if ( $no_of_images <= $day_of_year ) {
>   $image_to_use = ($day_of_year % $no_of_images)-1;
>}
>else {
>   $image_to_use = $day_of_year-1;
>};
>print "Location: $files[$image_to_use]\n\n";
>
>=================================================
>
>
>--
>White Hat
>pigskin_referee at yahoo.com
>

Can't help you with your script, but there are many of these image rotation 
scripts free on the web -- hotscripts.com for example is a good place to 
look for all kinds of perl/php scripts IMHO.

Good luck!
Jack

_________________________________________________________________
Download Messenger. Join the i’m Initiative. Help make a difference today. 
http://im.live.com/messenger/im/home/?source=TAGHM_APR07



More information about the freebsd-questions mailing list