Search
 
SCRIPT & CODE EXAMPLE
 

PHP

slideshow php

<?php
/*
    PHP image slideshow - auto version - PHP > 5.0
*/
// set the absolute path to the directory containing the images
define('IMGDIR', '/var/www/html/mysite.com/html/images/slideshow/');
// same but for www
define('WEBIMGDIR', '/images/slideshow/');
// set session name for slideshow "cookie"
define('SS_SESSNAME', 'slideshow_sess');
// global error variable
$err = '';
// start img session
session_name(SS_SESSNAME);
session_start();
// init slideshow class
$ss = new slideshow($err);
if (($err = $ss->init()) != '')
{
	header('HTTP/1.1 500 Internal Server Error');
	echo $err;
	exit();
}
// get image files from directory
$ss->get_images();
// set variables, done.
list($curr, $caption, $first, $prev, $next, $last) = $ss->run();
/*
    slideshow class, can be used stand-alone
*/
class slideshow
{
    private $files_arr = NULL;
    private $err = NULL;

    public function __construct(&$err)
    {
        $this->files_arr = array();
        $this->err = $err;
    }
    public function init()
    {
        // run actions only if img array session var is empty
        // check if image directory exists
        if (!$this->dir_exists())
        {
            return 'Error retrieving images, missing directory';
        }
        return '';
    }
    public function get_images()
    {
        // run actions only if img array session var is empty
        if (isset($_SESSION['imgarr']))
        {
                $this->files_arr = $_SESSION['imgarr'];
        }
        else
        {
            if ($dh = opendir(IMGDIR))
            {
                while (false !== ($file = readdir($dh)))
                {
                    if (preg_match('/^.*.(jpg|jpeg|gif|png)$/i', $file))
                    {
                        $this->files_arr[] = $file;
                    }
                }
                closedir($dh);
            }
            $_SESSION['imgarr'] = $this->files_arr;
        }
    }
    public function run()
    {
        $curr = 1;
        $last = count($this->files_arr);
        if (isset($_GET['img']))
        {
            if (preg_match('/^[0-9]+$/', $_GET['img'])) $curr = (int)  $_GET['img'];
            if ($curr <= 0 || $curr > $last) $curr = 1;
        }
        if ($curr <= 1)
        {
            $prev = $curr;
            $next = $curr + 1;
        }
        else if ($curr >= $last)
        {
            $prev = $last - 1;
            $next = $last;
        }
        else
        {
            $prev = $curr - 1;
            $next = $curr + 1;
        }
        // line below sets the caption name...
        $caption = str_replace('-', ' ', $this->files_arr[$curr - 1]);
        $caption = str_replace('_', ' ', $caption);
        $caption = preg_replace('/.(jpe?g|gif|png)$/i', '', $caption);
        $caption = ucfirst($caption);
        return array($this->files_arr[$curr - 1], $caption, 1, $prev, $next, $last);
    }
    private function dir_exists()
    {
        return file_exists(IMGDIR);
    }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Slideshow</title>
    <style type="text/css">
        body {
            margin: 0;
            padding: 0;
            font: 100% Verdana, Arial, Helvetica, sans-serif;
            font-size: 14px;
        }
	.gallery {
            border: 1px #ccc solid;
            max-width: 600px;
            margin: 0 auto;
            padding: 40px;
            text-align: center;
        }
        .gallery .gallery-nav {
            margin-bottom: 40px;
        }
        
        .gallery .gallery-nav a:first-child {
            margin-right: 10px;
        }
        .gallery .gallery-nav a:last-child {
            margin-left: 10px;
        }
        .gallery .gallery-image img {
            max-width: 100%;
            height: auto;
        }
        .gallery .gallery-image-label {
            color: #777;
        }
	a {
            color: #333;
        }
	a:hover {
            color: #cc0000;
        }
	.sp {
            padding-right: 40px;
        }
    </style>
</head>
<body>
    <div class="gallery">
        <div class="gallery-nav">
            <a href="?img=<?=$first;?>">First</a>
            <a href="?img=<?=$prev;?>">Previous</a>
            <span class="sp"></span>
            <a href="?img=<?=$next;?>">Next</a>
            <a href="?img=<?=$last;?>">Last</a>
        </div>
        <div class="gallery-image">
            <img src="<?=WEBIMGDIR;?><?=$curr;?>" alt="" />
        </div>
        <p class="gallery-image-label"><?=$caption;?></p>
    </div>
</body>
</html>
Comment

PREVIOUS NEXT
Code Example
Php :: Comment exiger une longueur minimale de commentaire dans WordPress 
Php :: run laravel envoy task 
Php :: php preg_match html cross origin 
Php :: <?php function find total( $my_list ) { //Insert your code here } ? 
Php :: wordpress add_action echo on edit page 
Php :: random record get with pagination in karavel 8 
Php :: rename image file using post id in wordpress programmatically 
Php :: php is multiple of 
Php :: update php 7.2 centos 8 command line without sudo 
Php :: sorting table row data with php 
Php :: implode remove empty php 
Php :: PHP strpbrk — Search a string for any of a set of characters 
Php :: php curl get text only 
Php :: PHP str_getcsv — Parse a CSV string into an array 
Php :: laravel read csv 
Php :: laravel handle image validation 
Php :: phpstorm entity identification 
Php :: PHP vsprintf — Return a formatted string 
Php :: php curl upload linkedin image 
Php :: how to click anchor tag in selenium in php 
Php :: publish algolia search in laravel 
Php :: cara looping abjad with range kapital 
Php :: delete file in s3 laravel 
Php :: Prevent infinite loop when saving Statamic entry 
Php :: how to search like username,email and phone number in php 
Php :: Lity in Wordpress 
Php :: DateTimeZone not found laravel 
Php :: symfony request 
Php :: search highlighting 
Php :: Laravel Deployment to google cloud app engine flexible environment app.yaml file 
ADD CONTENT
Topic
Content
Source link
Name
5+8 =