Hi All
I would like to show image files (in a random manner) at the top of webpage.
I want to have a folder that contains all the image files.
 
Then I want to have a separate php file (say rotate.php) having logic of selecting the random image file.
And want to include that rotate.php file from page.tpl.php.
 
To start with, I followed the marinelli view.
Used the images and rotate.php (\marinelli\img\banners\rotate.php).
 
Copied to image files and rotate.php to path where my page.tpl.php is present.
 
In page.tpl.php, I added the line  include ("rotate.php");
 
The rotate.php looks as below. On debugging looks preg_match line it breaks.
Please let me know why line "if ( preg_match( $regex, $file ) ) {" breaks.
 
Regards
Austin

<?php

/**

* randomly select an image from the current directory and return it

*

* @todo - consider accepting a local path as $_GET['img'] for overrides

* to remain compatible with Marinelli's rotate.php

*

* (but why? why possible use case is there for linking to

* rotate.php?img=file.gif instead of straight to file.gif?)

*/

$file_types = array(

'gif' => 'image/gif',

'jpg' => 'image/jpeg',

'jpeg' => 'image/jpeg',

'png' => 'image/png'

) ;

$regex = '/\.(' . implode('|',array_keys($file_types)) . ')$/i' ;

$files = array() ;

$directory = opendir(".");

while ( FALSE !== ($file = readdir( $directory )) ) {

if ( preg_match( $regex, $file ) ) {

$files[] = $file ;

}

}

if ( !empty( $files ) ) {

$which = rand(0,sizeof($files)-1) ;

if ( $file = file_get_contents( $files[$which] ) ) {

$parts = explode('.',$files[$which]) ;

$ext = strtolower($parts[sizeof($parts)-1]) ;

header( "Content-type: " . $file_types[$ext] ) ;

header( "Expires: Wed, 29 Jan 1975 04:15:00 GMT" );

header( "Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" );

header( "Cache-Control: no-cache, must-revalidate" );

header( "Pragma: no-cache" );

print $file ;

}

}