Tycoon Talk
Become a Big fish!
The number 1 forum for online business!
Post topics, ask questions, share your knowledge.
Tycoon Talk is part of Freelancer.com - find skilled workers online at a fraction of the cost.

PHP Forum


You are currently viewing our PHP Forum as a guest. Please register to participate.
Login



Freelance Jobs

Reply
Old 08-29-2004, 08:27 PM Random PHP Question?
Junior Talker

Posts: 3
Trades: 0
Hello all I was woudering if this code can be change so that it looks in different dirs and not just one using the $folder = '.'; If so how can I code it so that it will work? thanks

PHP Code:
<?php

/*

    AUTOMATIC IMAGE ROTATOR
    Version 2.2 - December 4, 2003
    Copyright (c) 2002-2003 Dan P. Benjamin, Automatic, Ltd.
    All Rights Reserved.

    [url]http://www.hiveware.com/imagerotator.php[/url]
    
    [url]http://www.automaticlabs.com/[/url]
    
    
    DISCLAIMER
    Automatic, Ltd. makes no representations or warranties about
    the suitability of the software, either express or
    implied, including but not limited to the implied
    warranties of merchantability, fitness for a particular
    purpose, or non-infringement. Dan P. Benjamin and Automatic, Ltd.
    shall not be liable for any damages suffered by licensee
    as a result of using, modifying or distributing this
    software or its derivatives.
    
    
    ABOUT
    This PHP script will randomly select an image file from a
    folder of images on your webserver.  You can then link to it
    as you would any standard image file and you'll see a random
    image each time you reload.
    
    When you want to add or remove images from the rotation-pool,
    just add or remove them from the image rotation folder.


    VERSION CHANGES
    Version 1.0
        - Release version
    
    Version 1.5
        - Tweaked a few boring bugs
    
    Version 2.0
        - Complete rewrite from the ground-up
        - Made it clearer where to make modifications
        - Made it easier to specify/change the rotation-folder
        - Made it easier to specify/change supported image types
        - Wrote better instructions and info (you're them reading now)
        - Significant speed improvements
        - More error checking
        - Cleaner code (albeit more PHP-specific)
        - Better/faster random number generation and file-type parsing
        - Added a feature where the image to display can be specified
        - Added a cool feature where, if an error occurs (such as no
          images being found in the specified folder) *and* you're
          lucky enough to have the GD libraries compiled into PHP on
          your webserver, we generate a replacement "error image" on
          the fly.
        
    Version 2.1
        - Updated a potential security flaw when value-matching
          filenames

    Version 2.2
        - Updated a few more potential security issues
        - Optimized the code a bit.
        - Expanded the doc for adding new mime/image types.

        Thanks to faithful ALA reader Justin Greer for
        lots of good tips and solid code contribution!


    INSTRUCTIONS
    1. Modify the $folder setting in the configuration section below.
    2. Add image types if needed (most users can ignore that part).
    3. Upload this file (rotate.php) to your webserver.  I recommend
       uploading it to the same folder as your images.
    4. Link to the file as you would any normal image file, like this:

            <img src="http://example.com/rotate.php">

    5. You can also specify the image to display like this:

            <img src="http://example.com/rotate.php?img=gorilla.jpg">
        
        This would specify that an image named "gorilla.jpg" located
        in the image-rotation folder should be displayed.
    
    That's it, you're done.

*/




/* ------------------------- CONFIGURATION -----------------------


    Set $folder to the full path to the location of your images.
    For example: $folder = '/user/me/example.com/images/';
    If the rotate.php file will be in the same folder as your
    images then you should leave it set to $folder = '.';

*/


    
$folder '.';


/*    

    Most users can safely ignore this part.  If you're a programmer,
    keep reading, if not, you're done.  Go get some coffee.

    If you'd like to enable additional image types other than
    gif, jpg, and png, add a duplicate line to the section below
    for the new image type.
    
    Add the new file-type, single-quoted, inside brackets.
    
    Add the mime-type to be sent to the browser, also single-quoted,
    after the equal sign.
    
    For example:
    
    PDF Files:

        $extList['pdf'] = 'application/pdf';
    
    CSS Files:

        $extList['css'] = 'text/css';

    You can even serve up random HTML files:

        $extList['html'] = 'text/html';
        $extList['htm'] = 'text/html';

    Just be sure your mime-type definition is correct!

*/

    
$extList = array();
    
$extList['gif'] = 'image/gif';
    
$extList['tif'] = 'image/tif';
    
$extList['jpg'] = 'image/jpeg';
    
$extList['jpeg'] = 'image/jpeg';
    
$extList['png'] = 'image/png';
    

// You don't need to edit anything after this point.


// --------------------- END CONFIGURATION -----------------------

$img null;

if (
substr($folder,-1) != '/') {
    
$folder $folder.'/';
}

if (isset(
$_GET['img'])) {
    
$imageInfo pathinfo($_GET['img']);
    if (
        isset( 
$extListstrtolower$imageInfo['extension'] ) ] ) &&
        
file_exists$folder.$imageInfo['basename'] )
    ) {
        
$img $folder.$imageInfo['basename'];
    }
} else {
    
$fileList = array();
    
$handle opendir($folder);
    while ( 
false !== ( $file readdir($handle) ) ) {
        
$file_info pathinfo($file);
        if (
            isset( 
$extListstrtolower$file_info['extension'] ) ] )
        ) {
            
$fileList[] = $file;
        }
    }
    
closedir($handle);

    if (
count($fileList) > 0) {
        
$imageNumber time() % count($fileList);
        
$img $folder.$fileList[$imageNumber];
    }
}

if (
$img!=null) {
    
$imageInfo pathinfo($img);
    
$contentType 'Content-type: '.$extList$imageInfo['extension'] ];
    
header ($contentType);
    
readfile($img);
} else {
    if ( 
function_exists('imagecreate') ) {
        
header ("Content-type: image/png");
        
$im = @imagecreate (100100)
            or die (
"Cannot initialize new GD image stream");
        
$background_color imagecolorallocate ($im255255255);
        
$text_color imagecolorallocate ($im0,0,0);
        
imagestring ($im255,  "IMAGE ERROR"$text_color);
        
imagepng ($im);
        
imagedestroy($im);
    }
}

?>

Last edited by Zudomon; 08-29-2004 at 08:29 PM.. Reason: Just need to
Zudomon is offline
Reply With Quote
View Public Profile
 
 
Register now for full access!
Old 08-30-2004, 08:53 AM
webwoRRks's Avatar
Ultra Talker

Posts: 426
Location: I hope so
Trades: 0
replace
$folder = '.';

with;
PHP Code:
$folders = array(".","folder2/","folder3/","folder/imgs/");
$folder $folders[rand(0,(count($folders)-1)]; 
;

In this way it will select a random folder at the start.
__________________
Theres 10 types of people; those who understand binary, and those who don't.
webmaster and webdeveloper resources,
Please login or register to view this content. Registration is FREE
webwoRRks is offline
Reply With Quote
View Public Profile Visit webwoRRks's homepage!
 
Old 08-30-2004, 12:02 PM
Junior Talker

Posts: 3
Trades: 0
Where the folders are I think I put the path of the file but there one more thing that I'm not getting, sometimes paths in PHP do like this:
./folder
./folder/
../folder/
so for and so on. The question is what do the is the dot for or do I omit them?
My path to my folder are Galleries/galleries how whould that be wrote as?

Quote:
Originally Posted by webwoRRks
replace
$folder = '.';

with;
PHP Code:
$folders = array(".","folder2/","folder3/","folder/imgs/");
$folder $folders[rand(0,(count($folders)-1)]; 
;

In this way it will select a random folder at the start.
Zudomon is offline
Reply With Quote
View Public Profile
 
Old 08-30-2004, 12:18 PM Sort Of...
Junior Talker

Posts: 3
Trades: 0
Okay this is what up:
PHP Code:
    $folders = array(".","Galleries/galleries/Braford/thumbnail/","Galleries/galleries/Brawny-Bear/thumbnail","Galleries/galleries/Muscle-Wolf/thumbnail/","Galleries/galleries/Muscle-Wolf/Orca-Wolf/thumbnail/","Galleries/galleries/Muscle-Wolf/Orca-Wolf/thumbnail/","Galleries/galleries/Zudomon/thumbnail/"); 
    
$folder $folders[rand(0,(count($folders)-1)]; 
I put this up on the site and did the my URL http://www.furry-muscle.org/rotator.php and got notting just a blank page :S Even try it with out the first dir and switch it with a new one.

Last edited by Zudomon; 08-30-2004 at 12:20 PM..
Zudomon is offline
Reply With Quote
View Public Profile
 
Old 08-31-2004, 06:15 AM
webwoRRks's Avatar
Ultra Talker

Posts: 426
Location: I hope so
Trades: 0
the '.' is a relative location; a single '.' represents the "current folder" (for example, the folder your script is located in. 2 dots '..' means the relatvie subfolder. Suppose your script is located at http://www.yoursite.com/stuff/scripts/script.php, 2 dots from there would give you the folder http://www.yoursite.com/stuff/, the folder 1 below the one your script is located in. As for it not working, this is due to a typo on my part. Replace the code you gave above with;

PHP Code:
$folders = array(".","Galleries/galleries/Braford/thumbnail/","Galleries/galleries/Brawny-Bear/thumbnail","Galleries/galleries/Muscle-Wolf/thumbnail/","Galleries/galleries/Muscle-Wolf/Orca-Wolf/thumbnail/","Galleries/galleries/Muscle-Wolf/Orca-Wolf/thumbnail/","Galleries/galleries/Zudomon/thumbnail/"); 
    
$folder $folders[rand(0,(count($folders)-1))]; 
(I missed a bracket).
__________________
Theres 10 types of people; those who understand binary, and those who don't.
webmaster and webdeveloper resources,
Please login or register to view this content. Registration is FREE
webwoRRks is offline
Reply With Quote
View Public Profile Visit webwoRRks's homepage!
 
Reply     « Reply to Random PHP Question?
 

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off





   
RSS Feed  Feeds: RSS   JS   XML
RSS Feed  Feeds for this forum: RSS   JS   XML



Page generated in 0.32048 seconds with 12 queries