Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 07 May 2007 08:28:56 -0500
From:      "Jack Stone" <antennex@hotmail.com>
To:        pigskin_referee@yahoo.com, freebsd-questions@freebsd.org
Subject:   RE: Perl Script in Apache
Message-ID:  <BAY125-F272B3BE2C5BD3199CEA147CC450@phx.gbl>
In-Reply-To: <19743.80650.qm@web34410.mail.mud.yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
>From: White Hat <pigskin_referee@yahoo.com>
>To: FreeBSD Users Questions <freebsd-questions@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@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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BAY125-F272B3BE2C5BD3199CEA147CC450>