You are here: Re: Random Thumbnail Script « PHP Language « IT news, forums, messages
Re: Random Thumbnail Script

Posted by J.O. Aho on 03/03/07 20:21

shimmyshack wrote:
> On 3 Mar, 20:06, "J.O. Aho" <u...@example.net> wrote:
>> Fred Atkinson wrote:
>>> I need a PHP script that can be invoked refererencing a
>>> subdirectory where thumbnails are stored and have it randomly display
>>> one of those thumbnails.
>>> To expand upon my needs, here is the hierarchy of the Web
>>> site:
>>> main pages public_html
>>> subpages apple banana coconut
>>> sub-subpages aa bb cc dd ee ff gg
>>> Each of the aa-gg subdirectories will contain thumbnail .jpg
>>> files. I'd like to be able to invoke the script quite a few times
>>> within the same PHP page.
>>> From the page in /banana, use <?php random_image $dir=aa> to
>>> return a thumbnail that it randomly took from sub page /banana/aa. I
>>> would invoke a thumbnail from another directory by changing aa to bb,
>>> cc, dd, ee, ff, or gg.
>> Make a file that you can include in your pages
>>
>> --- randomimg.php ---
>> class randomimg {
>>
>> protected $imgs=array();
>> protected $basepath;
>>
>> function randomimg($base='.') {
>> $this->basepath=$base;
>> }
>>
>> function getimg($path) {
>> if(empty($this->imgs[$path])) {
>> $this->imgs[$path]=scandir($this->basepath.'/'.$path);
>> }
>>
>> /* Older versions need srand to work */
>> $version=explode('.',phpversion());
>> if((intval($version[0])<4) || ((intval($version[0])==4) &&
>> (intval($version[1])<2))) {
>> /* We have PHP 4.1 or older, so we need srand() to get random
>> numbers */
>> list($usec, $sec) = explode(' ', microtime());
>> srand((float) $sec + ((float) $usec * 100000));
>> }
>>
>> return $path.'/'.$this->imgs[$path][rand(0,count($this->imgs[$path])-1)];
>> }}
>>
>> --- eof ---
>>
>> > From the page in /banana, use <?php random_image $dir=aa> to
>> > return a thumbnail that it randomly took from sub page /banana/aa. I
>> > would invoke a thumbnail from another directory by changing aa to bb,
>> > cc, dd, ee, ff, or gg.
>>
>> in the page where you need the random images:
>>
>> --- subpages.php ---
>> include_once('randomimg.php')
>> $images= new randomimg();
>>
>> $path_to_the_image=$images->getimg('aa');
>> --- eof ---
>>
>> --- main_pages.php ---
>> include_once('randomimg.php')
>> $images= new randomimg();
>>
>> $path_to_the_image=$images->getimg('coconut/bb');
>> --- eof ---
>>
>> It will just read a directory once, store all the files/directories in an
>> array and if the same directory is used more than once, it will skip the part
>> of scanning the directory.
>>
>> Of course, I would most likely used a database for the file names/paths,
>> classes and so on.


> and then why not use sessions, store 200 in there, job done no further
> problem, hmm

Sure, sessions would work as storage too as well as a file where all the image
paths are stored. There are quite many different options here.


> are we forgetting the newbie OP here?

Who cares when you have 5 minutes over for some silly coding.


--

//Aho

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация